几周前,我用 python 编写了一个 CSV 解析器,它与提供的文本文件配合得很好。但是当我们尝试使用其他文件进行测试时,问题就出现了。
首先是
ValueError: empty string for float()
对于像“313.44”这样的字符串。问题在于,在 unicode 中,数字“\x0”之间存在一些空字节。
好的,我用 unicode 解码读取它
codecs.open(filename, 'r', 'utf-16')
然后 hell 就出现了,缺少 BOM、行结束符问题(LF 与 CR+LF)等。
如果我不知道编码是什么、是否存在 BOM、行结尾是什么等,您能否向我提供或提示有关解析 unicode 和非 unicode 文件的解决方法。
附注我正在使用Python 2.7
最佳答案
使用 Daenyth 提出的 csv 模块解决了该问题
关于Python 和解析 unicode 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5473369/