读写文件时的怪异行为
问题内容:
当执行以下代码时,在第二次读取后,文件将填充为零,直到其大小为4096字节。我不知道为什么:
f = open("file.txt", "w+")
f.read()
# gives ''
f.write("Hello")
f.read()
# filled with \x00,\x00
f.close()
# file is 4096 bytes large...
问题答案:
为您解决问题的最佳方法:不要混用read()
和write()
。
否则:在之后write()
,请seek()
在第二秒之前使用read()
来 从头开始 读取文件:
f = open("file.txt", "w+")
print f.read() # prints ''
f.write("Hello")
f.seek(0)
print f.read() # print 'Hello'
f.close()