我是新手。但是,我设法从txt文件(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传送,因此每次手动更改都是不切实际的。我阅读了很多其他编码/编码/解码问题。但我完全迷失了,不知道如何解决这个问题。哪个命令正确?脚本中的哪个位置?或者我完全错了,它与编码问题没有任何关系?
答案 0 :(得分:11)
我相当确定您的输入文件是UTF-16编码的,而您看到的空格实际上是空字节。
尝试
with open("myfile.txt", "r", encoding="utf-16") as infile:
lines = infile.readlines()
并查看问题是否仍然存在。