我是新手。但是,我設法從txt文件(unicode)中提取一些行並將它們寫入另一個文件中。Python:Unicode源文件在字符之間添加空格(實際上是空字節)
lines = InFile.readlines()
OutFile.writelines(lines[3:])
它正在工作,但(我相信)由於編碼問題在輸出文件中的每個字符之間添加一個空格。結果的 例子:
2 0 1 3 - 1 2 - 2 3 ; ; 3 6 0 . 3 7
2 0 1 3 - 1 2 - 2 4 ; ; 0 . 0 0
行的源文件中:
2013-12-23;;360.37
2013-12-24;;0.00
如果我保存的txt源文件爲ANSI運行腳本之前,我收到正確的結果。但是,由於源文件是由另一個軟件以Unicode自動發送的,因此每次手動更改都不切實際。我閱讀了很多其他編碼/編碼/解碼問題。但我完全失去了,不知道我該如何解決這個問題。哪個是正確的命令?腳本中的哪個位置?或者我完全錯了,它與編碼問題沒有任何關係?
'OutFile'是如何打開的?你使用的是什麼版本的Python,以及如何閱讀文件以查看字符之間的「空格」? –
文件永遠不是「Unicode」 - 它可以使用各種可以解碼爲Unicode字符串的編碼(如UTF-8,UTF-16-LE,UTF-16-BE,UTF-32等) ,但文件本身由簡單的字節組成。 –
我懷疑OP被某些微軟產品誤導,這些微軟產品提供諸如「另存爲Unicode」之類的選項。正如我們在這裏看到的那樣使用UTF-16-LE。這並不是說你錯了。 –