2011-03-29 103 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模塊