Python:原子写入多个文件的解决方案?

时间:2018-07-09 16:49:04

标签: python database filesystems atomicity

我有一组文件。如何确保写入所有这些文件都是原子的。

这就是我的想法。首先确保打开已同步,然后执行以下操作:

  1. 写入临时文件:file1〜,file2〜和特殊文件成功〜(必须 先写)。
  2. 成功写入后,删除文件成功〜。
  3. 将文件重命名为file1和file2。

如果出现故障:

  1. 检查是否成功〜。
  2. 如果有,请勿打扰修理。因为未更新文件(没有重命名),所以隐式执行了回滚。
  3. 如果不存在成功〜,则在写入后和重命名过程中都会中断。在这种情况下,修复就像将filex〜重命名为filex一样简单。

但是我觉得这不会扩展到非常大的文件,尤其是如果我们也想附加到这些文件上。

相反,我考虑过实施交易,但是那成了一个单独的项目。我意识到这几乎与实现小型数据库有关。

您将如何在Python中做到这一点?

d = FileWriter.open(['file1', 'file2'], 'wb+')
d.write('add hello world to files')
d.close()

确保d.write是原子的,或者如果失败则至少回滚到原始文件。

0 个答案:

没有答案