写入后读取文件,未关闭前
我想在一个最开始是空的文件里写入内容后,尝试读取这些内容,但在关闭文件之前这样做。请问在Python中可以实现吗?
with open("outfile1.txt", 'r+') as f:
f.write("foobar")
f.flush()
print("File contents:", f.read())
使用 f.flush()
刷新文件似乎没有效果,因为最后调用 f.read()
还是返回空。
除了重新打开文件,还有其他方法可以读取文件中的“foobar”吗?
3 个回答
2
在读取文件之前,先回到文件的开头:
f.seek(0)
print f.read()
3
文件对象会记录当前在文件中的位置。你可以用 f.tell()
来查看当前位置,用 f.seek(position)
来设置新的位置。
如果你想从头开始读取文件,就需要把位置设置到开头,使用 f.seek(0)
。
14
你需要把文件对象的位置重置到最开始的地方,可以使用 seek()
这个方法:
with open("outfile1.txt", 'r+') as f:
f.write("foobar")
f.flush()
# "reset" fd to the beginning of the file
f.seek(0)
print("File contents:", f.read())
这样就可以从文件中读取内容了。