2011-03-29 97 views
1

几周前,我在python中编写了一个CSV解析器,它与所提供的文本文件一起工作得很好。但是,当我们试图测试与其他文件的问题开始。Python和解析unicode文件

首先是

ValueError: empty string for float()

像 “313.44” 这样的字符串。问题是在unicode中,数字'\ x0'之间有一些空字节。

好的,我解码的

codecs.open(filename, 'r', 'utf-16')

然后读它作为一个统一的地狱打开,丢失的BOM,问题与行结束字符(LF VS CR + LF)等

所以如果我不知道编码是什么,可以提供给我或给我一个关于解析unicode和非unicode文件的解决方法,BOM是否存在,是什么行结尾等等。

PS我使用Python 2.7

+2

你为什么要编写一个csv解析器而不仅仅是使用'csv'模块? – Daenyth 2011-03-29 14:44:33

回答

1

问题解决了Daenyth提出的csv模块