如果已经刷新以使内容在意外重新启动后仍然存在,是否需要致电close?

时间:2018-09-24 22:22:42

标签: python file

我正在写文件,完成后调用flush()。在不调用文件的close()的情况下强制拔出电源插头退出程序是否安全?调用flush()足以确保文件不会损坏。

1 个答案:

答案 0 :(得分:3)

为确保将内容刷新到操作系统(并且对其他正在运行的应用程序可见),flush()close()就足够了(也就是说,您不需要两者。

要确保将内容刷新到磁盘 ,还需要添加os.fsync()os.fdatasync()。请注意,对于新创建(或新重命名)的文件,您需要担心目录是否也被刷新了。


顺便说一句-如果您真正想确保事情顺利完成,经典的演示文稿Eat My Data值得您花费时间和精力。