写入文件中刷新的副作用

时间:2012-12-12 03:32:52

标签: python file flush

  

可能重复:
  what exactly the python’s file.flush() is doing?

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

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

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

1 个答案:

答案 0 :(得分:0)

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

对于文件操作,Python使用操作系统的默认缓冲,除非您另行配置。您可以指定缓冲区大小,未缓冲或行缓冲。因此,如果您经常使用flush,则会继续使用IO,如果您要清除大量数据(即缓冲区很大),那么其他正在运行的程序可能会慢一些,这可能最终会等待IO。

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

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

你可以考虑一下,是否有其他线程或程序从你编写的同一个文件中读取?如果是这种情况,您可能会遇到麻烦!腐败文件在这里是非常可能的。如果您正在考虑将文件用作持久性数据存储。然后以错误的方式去做。为什么不考虑使用持久性数据库(如mysql甚至是sqlite)而不是使用文件作为数据存储。