close()暗示Python中的flush()?

Ada*_*tan 33 python operating-system flush

在Python中,一般而言 - close()对文件对象的flush()操作是否意味着操作?

Mar*_*man 31

是.它使用底层close()函数为您()执行此操作.

  • +1谢谢.通过"跨语言",我想问一下这种行为在绝大多数现代编程语言中是否相似. (3认同)
  • (换句话说:缓存的文件I/O是大抽象的并且远离你.做一个`open`,`write`,`close`不应该留下未编写的东西,因为你已经打算用`write`一个常规吃掉被抛出物的缓冲区将是一个非常糟糕的设计[或饥饿的缓冲区].) (2认同)

Dou*_*der 16

注意:close()并且flush()不会确保数据在磁盘上实际上是安全的.它只是确保操作系统具有数据==,它不会在进程内缓冲.

您可以尝试使用sync或fsync将数据写入磁盘.


Fel*_* D. 6

是的,在 Python 3 中,这最终出现在官方文档中,但在 Python 2 中已经是这种情况了(参见Martin 的回答)。