Python与解析unicode文件

1 投票
2 回答
1611 浏览
提问于 2025-04-16 14:39

几周前,我用Python写了一个CSV解析器,最开始在提供的文本文件上运行得很好。但是当我们尝试用其他文件测试时,问题就出现了。

第一个问题是:

ValueError: empty string for float()

这个错误出现在像“313.44”这样的字符串上。问题是,在unicode编码中,数字之间有一些空字节,表示为'\x0'。

于是我尝试用下面的方式解码,以便以unicode格式读取:

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

结果问题就来了,缺少BOM(字节顺序标记),还有行结束符的问题(LF和CR+LF的区别)等等。

所以你能给我一些建议,或者提供一个解决方案,关于如何解析unicode和非unicode文件吗?如果我不知道编码是什么,BOM是否存在,行结束符是什么等等。

附注:我使用的是Python 2.7。

2 个回答

0

这主要取决于你使用的Python版本,不过这两个链接应该能帮到你:

1

这个问题是通过使用csv模块解决的,正如Daenyth所建议的那样。

撰写回答