【发布时间】:2015-04-09 12:06:13
【问题描述】:
我正在通过以下方式记录数据:
with open('filename.txt','a') as fid:
fid.write(line_of_data)
诚然,每次写入打开文件的时间都很短,但我会每秒写入一次数据,使其非常重复。由于这是在远程系统上使用的,因此电源总是有可能中断导致计算机关闭。如果在 fid.write() 中间断电,整个文件是否会损坏,或者,因为它被打开以“追加”,所以只会丢失最后一行?
【问题讨论】:
-
在 CPython 中,文件对象是使用 C
FILE类型实现的。所以我怀疑这个问题的答案与“在 C 中,如果我在写我的FILE对象时断电会发生什么?”的答案是一样的。也许这个问题已经存在于 SO :-) -
究竟会发生什么取决于Page caching 之类的内容,以及您是否使用Journaling file system。 FWIW、Windows 上的 NTFS 和 Linux 上的 ext3 和 ext4 是日志文件系统。
标签: python python-2.7 io