在写完文件之前,我是否必须刷新文件?

时间:2014-03-23 06:39:57

标签: 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 file
  fileSize = f.tell()

  # Is fileSize guaranteed to be correct?

1 个答案:

答案 0 :(得分:0)

不,您不需要致电flush。调用flush来强制将缓冲区中的字节写入流中。

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