【发布时间】:2011-03-29 13:33:14
【问题描述】:
几周前,我用 python 编写了一个 CSV 解析器,它与提供的文本文件配合得很好。但是当我们尝试测试其他文件时,问题就开始了。
首先是
ValueError: float() 的空字符串
对于像“313.44”这样的字符串。问题是在 unicode 中,数字 '\x0' 之间有一些空字节。
好的,我将其解码为使用 unicode 读取它
codecs.open(文件名, 'r', 'utf-16')
然后地狱打开,缺少 BOM,行尾字符问题(LF vs CR+LF)等等。
如果我不知道编码是什么、是否存在 BOM、行尾是什么等,您能否提供或提示我解析 unicode 和非 unicode 文件的解决方法。
附:我正在使用 Python 2.7
【问题讨论】:
-
你为什么要编写一个 csv 解析器而不只是使用
csv模块?
标签: python parsing unicode file-io csv