Python 我是否必须在写入文件后刷新文件,然后才能告知其长度?
我正在为Windows(不是cygwin!)和Mac编写一个跨平台程序 我正在写入文件,然后立即尝试获取文件的新长度,而不首先关闭文件 我是否需要在写入后刷新文件,以确保获得准确的长度Python 我是否必须在写入文件后刷新文件,然后才能告知其长度?,python,file,Python,File,我正在为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
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?
不,您不需要调用
flush
<调用code>flush强制将缓冲区中的字节写入流
除此之外,f.seek(0,2)
也不是必需的,因为在truncate
,write
方法调用之后,文件位置已经在文件的末尾