我在使用python中的文件时遇到了一个奇怪的问题。假设我有一个文本文件和一段简单的代码,它读取文件的内容,然后用未改变的内容重写它。Python的读取和写入将 x00添加到文件
FILE.TXT
这是一个测试文件
Python代码
f=open(File.txt,'r+')
data=f.read()
f.truncate(0)
f.write(data)
f.close()
运行上述代码File.txt
后似乎是相同的。但是,当我在十六进制编辑器中打开它时,我惊讶地发现在文本文件的实际内容之前看到很多\x00
(NULL)字节,而之前并不是。
任何人都可以解释一下吗?
不,不,不。 '.truncate'截断文件。而已;没有空字节。如果代码以'f.truncate(0)'结尾,则文件变成零大小。它是文件偏移量不是零的'.write',导致操作系统用空字节填充*未写入*字节(或者只是*假设*未写入的字节为空;它取决于文件系统)。 – tzot 2012-03-29 17:41:25