python - 导入文本文件出错

标签 python string file-io floating-point readlines

我有一个包含以下数据的文本文件:

5298    10036   4   360 8
6128    11947   2   385 7
9472    18930   0   233 4
5056    9790    1   293 6

我使用以下代码读取此文件:

file1 = open("test.txt","r")
lines = file1.readlines()       
BF=[map(float, line.split()) for line in lines]

这给了我以下错误:

could not convert string to float: ÿþ5

为什么我会看到这个错误?

更新:

print lines 

显示:

['\xff\xfe5\x002\x009\x008\x00\t\x001\x000\x000\x003\x006\x00\t\x004\x00\t\x003\x006\x000\x00\t\x008\x00\r\x00\n', '\x006\x001\x002\x008\x00\t\x001\x001\x009\x004\x007\x00\t\x002\x00\t\x003\x008\x005\x00\t\x007\x00\r\x00\n', '\x009\x004\x007\x002\x00\t\x001\x008\x009\x003\x000\x00\t\x000\x00\t\x002\x003\x003\x00\t\x004\x00\r\x00\n', '\x005\x000\x005\x006\x00\t\x009\x007\x009\x000\x00\t\x001\x00\t\x002\x009\x003\x00\t\x006\x00\r\x00\n', '\x001\x005\x000\x006\x004\x00\t\x003\x000\x001\x006\x000\x00\t\x001\x00\t\x003\x001\x002\x00\t\x008\x00']

最佳答案

你有一个 utf-16 BOM,这里是0xFE 0xFF 解释为ÿþ,需要打开文件,通过编码。

file1 = open("test.txt","r", encoding = "utf-16")

当你使用 python 2 时,你可以试试这个:

import io
file1 = io.open("test.txt","r", encoding = "utf-16")

关于python - 导入文本文件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29230943/

相关文章:

python - 在 Python3 中, `import` 是否可以传递?

python - 使用Python插入MySQL数据库后如何获取 "id"?

python - 以合理的方式打印 RethinkDB 查询的响应

javascript - 当字符串与所需文本匹配时向元素添加 CSS 类 - JavaScript

java - 减少格式化字符串所需的步骤

用于验证字典值中项目是否存在的 Python3 单行代码

java - 如果替换字符串包含特殊(某些正则表达式)字符,如何替换java中的字符串

C++在文件夹中找到所有类型的文件?

java - 在Java中正确地将对象数组输出到.csv文件

无法将双数正确导入到 C 程序中