![]() |
1
34
对。它使用底层
|
![]() |
2
18
|
![]() |
3
3
in the official documentation ,但在Python2中已经是这样了(参见 Martin's answer ). |
![]() |
4
0
作为对这个问题的补充,是的,python会在关闭前进行刷新,但是如果您想确保数据正确写入磁盘,这是不够的。
外部3
具有
如果Python能提供简单的方法来解决这个问题,那就太好了。。。同时,我想如果您关心数据的一致性,那么最好在较低的级别上真正了解正在发生的事情,特别是因为不同的操作系统和文件系统之间存在许多差异。
还要注意的是,这并不能保证写入的数据可以恢复,只保证您将获得数据的一致副本(旧的或新的)。为了确保在返回时安全地写入和访问新数据,您需要使用
|
|
5
-8
filehandle.close不一定刷新。出人意料的是,filehandle.flush也帮不上忙——当Python运行时,它仍然会被困在OS缓冲区中。观察这个会话,我在其中写入了一个文件,关闭了它,并在shell命令提示符下按Ctrl-Z键并检查了该文件:
随后,我可以重新打开该文件,这必然会同步该文件(因为在本例中,我是在append模式下打开它的)。正如其他人所说,sync syscall(可从操作系统包获得)应该将所有缓冲区刷新到磁盘,但它可能会影响整个系统的性能(它会同步系统上的所有文件)。 |
![]() |
Anshuman Singh · “冲洗小溪”是什么意思? 8 年前 |