1

我希望使用附加到 .tar 文件,tarfile但我不知道该文件是否正在使用中。如何检查文件是否可以附加到?

我试过了:

try:
   with tarfile.open("foo.tar", "a:") as tar:
      tar.add("bar.txt")
except tarfile.TarError:
   print "error"

这有时会出现错误,但有时不会,并且最后的 tar 文件没有我期望的所有文件。

我的计划是循环使用它并继续尝试直到它起作用。

我还有其他选择,其中大部分涉及将去皮留给另一个过程,但我觉得tarfile应该对这类事情负责。我可以编写一个包装器来tarfile检查新文件是否出现在tar.getmembers()列表中。

4

1 回答 1

2

唯一安全的方法是:

  • 制作文件的副本。
  • 以追加模式打开副本
  • 将副本重命名为原始文件。
于 2016-07-12T18:53:40.363 回答