避免在Python中部分编写的文件

时间:2012-10-16 20:28:51

标签: python file

用Python编写文件的“最安全”方法是什么?我听说过原子文件写作,但我不知道该怎么做以及如何处理它。

3 个答案:

答案 0 :(得分:6)

您想要的是原子文件替换,以便磁盘上永远不会有未完成的最终文件。目标位置上只存在完整的新版本或完整的旧版本。

这里描述了Python的方法:

Atomic file replacement in Python

答案 1 :(得分:1)

您可以写入临时文件并重命名它,但是正确执行此操作有很多问题。我更喜欢使用这个不错的库 Atomic Writes

安装:

pip install atomicwrites==1.4.0 #check if there is a newer version

然后将其用作上下文:

from atomicwrites import atomic_write

with atomic_write('foo.txt', overwrite=True) as f:
    f.write('Hello world.')
    # "foo.txt" doesn't exist yet will be created when closing context

答案 2 :(得分:0)

with open("path", "w") as f:
    f.write("Hello, World")

使用with-Statement可以保证文件被关闭,无论发生什么(最后它等于尝试...)。