Python 写文件时刷新的副作用

Python 写文件时刷新的副作用,python,file,flush,Python,File,Flush,可能重复: 我发现调用flush方法需要很多IO操作,这会导致额外的时间 我知道如果我在脚本中去掉flush,文件将不会立即更新 所以我想知道,如果我只是在写文件,而不是在读文件,那么从脚本中删除flush是否还有其他副作用?副作用?我不太明白你的意思,不过还是让我先说说吧 对于文件操作,Python使用操作系统的默认缓冲,除非您对其进行其他配置。可以指定缓冲区大小、无缓冲区大小或行缓冲区大小。因此,如果您经常使用flush,则会出现持续的IO,如果您正在刷新大量数据,即缓冲区太大,则可能会减

可能重复:

我发现调用flush方法需要很多IO操作,这会导致额外的时间

我知道如果我在脚本中去掉flush,文件将不会立即更新


所以我想知道,如果我只是在写文件,而不是在读文件,那么从脚本中删除flush是否还有其他副作用?

副作用?我不太明白你的意思,不过还是让我先说说吧

对于文件操作,Python使用操作系统的默认缓冲,除非您对其进行其他配置。可以指定缓冲区大小、无缓冲区大小或行缓冲区大小。因此,如果您经常使用flush,则会出现持续的IO,如果您正在刷新大量数据,即缓冲区太大,则可能会减慢其他正在运行的程序的速度,最终可能会等待IO

快速频繁的IO操作对硬盘的使用寿命不利,它会增加磁盘崩溃的变化

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


您需要考虑的是,是否有其他线程或程序在您编写文件时读取同一文件?如果是这种情况,你可能会遇到麻烦!在这里很有可能出现损坏的文件。如果您正在考虑将文件用作持久数据存储。那么这样做是错误的。为什么不考虑使用像MySQL这样的持久性数据库,甚至是SQLite,而不是使用一个文件作为数据存储。

读取答案中的刷新效果。如果您的程序中不需要它,那么不要使用flush。