在Python中,close()是否意味着flush()?

48 投票
5 回答
20942 浏览
提问于 2025-04-15 20:27

在Python中,通常情况下,对一个文件对象执行close()操作是否意味着会先执行flush()操作呢?

5 个回答

6

是的,在Python 3中,这个内容终于在官方文档里有了说明,不过在Python 2的时候就已经是这样了(可以参考马丁的回答)。

21

注意:close()flush() 并不能保证数据真的安全地存储在硬盘上。它们只是确保操作系统已经收到了这些数据,也就是说,这些数据不再停留在程序内部的缓存中。

你可以试试 syncfsync 来确保数据被写入硬盘。

41

是的。它使用了底层的 close() 函数,这个函数会为你完成这个操作(来源)。

撰写回答