Python 我是否必须在写入文件后刷新文件,然后才能告知其长度?

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

我正在为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?

不,您不需要调用
flush
<调用code>flush强制将缓冲区中的字节写入流

除此之外,
f.seek(0,2)
也不是必需的,因为在
truncate
write
方法调用之后,文件位置已经在文件的末尾