\x00位于.txt文件的开头



所以我有一个文件夹,里面有两个.txt文件a.txt和B.txt.

我有一个程序,看起来像这样:

def main():
f = open("/Users/MyName/Desktop/MyPythonFolder/ProjectFolder/A.txt","r+")
print(f.read())

main()

当我运行这个程序时,IDLE崩溃。。。但当我重新启动IDLE并尝试使用B.txt时,它运行得非常好。此外,如果我尝试执行print(len(f.read()))或任何操作文件的操作,如写入、截断,甚至从文件中获取数据,如len((、split((等,效果都很好。我已经确定这是因为A.txt在开头填充了\x00。有人知道这些为什么/如何出现吗?

要解决此问题,只需解码数据:

print line.decode('utf-16-le').split()

或者在io或编解码器模块的文件级别上做同样的事情:

file = io.open('data.txt','r', encoding='utf-16-le')

从这里的另一个问题得到

最新更新