1

可能重复:
python 的 file.flush() 到底在做什么?

我发现调用flush方法会耗费很多IO操作,导致额外的时间。

我知道如果我在我的脚本中取出flush,文件将不会立即更新。

所以我想知道我是否只写而不读文件,从脚本中取出刷新还有其他副作用吗?

4

1 回答 1

0

副作用?我不完全明白你的意思,但无论如何让我之前。

对于文件操作,Python 使用操作系统的默认缓冲,除非您另外配置。您可以指定缓冲区大小、无缓冲或行缓冲。因此,如果您一直在使用flush持续的 IO,并且如果您正在刷新大量数据(即缓冲区很大),这可能会减慢其他可能最终等待 IO 的正在运行的程序。

快速频繁的 IO 操作不利于硬盘的寿命,它增加了磁盘崩溃的变化。

通常我遵循的模式是在完成对文件对象的所有写入之后,在关闭文件之前最后完成刷新。

您需要考虑一些事情,是否有其他线程或程序从您正在编写的同一文件中读取?如果是这种情况,您可能会遇到麻烦!损坏的文件在这里很有可能。如果您正在考虑使用文件作为持久数据存储。那么这是错误的做法。为什么不考虑使用持久数据库(如 mysql 甚至 sqlite)而不是使用文件作为数据存储。

于 2012-12-12T03:38:44.943 回答