意外关机期间损坏文件的危险

Danger in corrupting file during unexpected shutdown

我正在通过以下方式记录数据:

with open('filename.txt','a') as fid:
    fid.write(line_of_data)

当然,每次写入文件打开的时间很短,但我会每秒写入数据,使其非常重复。由于这是在远程系统上使用的,因此电源中断总是有可能导致计算机关机。如果在 fid.write() 中间断电,整个文件是否会损坏,或者,因为它是在 "append" 打开的,所以只会丢失最后一行吗?

它实际上取决于文件系统和操作系统。当你 "write" 到一个文件时,它可能并不真正意味着写入实际的硬盘驱动器 - 例如,它可能被 OS 缓冲,而不是真正地 "make it" 到硬盘驱动器本身。 在这种情况下,除了一切都可能发生之外,你不应该假设任何事情。 如果您需要某种形式的持久性写作——您可能需要使用专门的库来添加所需的安全层