我正在为Windows编写一个跨平台程序(不是cygwin!)和Mac。
我正在写一个文件,然后立即尝试获取文件的新长度,而不先关闭文件。
我写完后是否需要刷新文件,以确保获得准确的长度?
with open("myfile.bin", "r+b") as f:
f.seek(100)
f.truncate()
f.write("hello world")
# Do I need to f.flush here?
f.seek(0, 2) # seeks to end of file
fileSize = f.tell()
# Is fileSize guaranteed to be correct?
答案 0 :(得分:0)
不,您不需要致电flush
。调用flush
来强制将缓冲区中的字节写入流中。
除此之外,f.seek(0,2)
也不是必需的,因为在truncate
,write
方法调用之后文件位置已经在文件的末尾。