读写文件时的怪异行为


问题内容

当执行以下代码时,在第二次读取后,文件将填充为零,直到其大小为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()