Python:Unicode源文件在字符之间添加空格(实际上是空字节)

use*_*270 7 python unicode encoding decoding

我是新手.但是,我设法从txt文件(unicode)中提取一些行,并将它们写入另一个文件中.

lines = InFile.readlines()
OutFile.writelines(lines[3:])
Run Code Online (Sandbox Code Playgroud)

它正在工作,但(我相信)由于编码问题,输出文件中的每个字符之间都有一个空格.结果示例:

2 0 1 3 - 1 2 - 2 3 ; ; 3 6 0 . 3 7 
2 0 1 3 - 1 2 - 2 4 ; ; 0 . 0 0 
Run Code Online (Sandbox Code Playgroud)

源文件中的行:

2013-12-23;;360.37
2013-12-24;;0.00
Run Code Online (Sandbox Code Playgroud)

如果我在运行脚本之前将txt源文件保存为ANSI,我会收到正确的结果.但是,由于源文件由另一个软件自动作为Unicode传送,因此每次手动更改都是不切实际的.我阅读了很多其他编码/编码/解码问题.但我完全迷失了,不知道如何解决这个问题.哪个命令正确?脚本中的哪个位置?或者我完全错了,它与编码问题没有任何关系?

Tim*_*ker 11

我很确定你的输入文件是UTF-16编码的,你看到的空格实际上是空字节.

尝试

with open("myfile.txt", "r", encoding="utf-16") as infile:
    lines = infile.readlines()
Run Code Online (Sandbox Code Playgroud)

并查看问题是否仍然存在.