我希望使用tarfile
附加到.tar文件,但我不知道该文件是否正在使用中。如何检查文件是否可以附加到?
我试过了:
try:
with tarfile.open("foo.tar", "a:") as tar:
tar.add("bar.txt")
except tarfile.TarError:
print "error"
这有时会出错,但有时却没有,最后的tar文件没有我期望的所有文件。
我的计划是让它循环并继续尝试直到它工作。
我有其他选择,其中大多数涉及将皮重留给另一个进程但我觉得tarfile
应该对这类事负责。我可以为tarfile
编写一个包装器来检查新文件是否出现在tar.getmembers()
列表中。
答案 0 :(得分:2)
唯一安全的方法是: