在将其作为类文件对象获取之前,我想使用 Python 验证 tar 存档中给定文件的存在。我用 isreg()
试过了,但可能我做错了什么。
如何使用 Python 检查文件是否存在于 tar 存档中?
我试过了
import tarfile
tar = tarfile.open("sample.tar", "w")
tar.add("test1.txt")
tar.add("test2.txt")
tar.add("test3.py")
tar.close()
tar = tarfile.open("sample.tar", "r")
tai = tar.tarinfo(name="test3.py")
print(tai.isreg())
print(tai.size())
tar.close()
可能 tai 是错误的。事实上 tai.size()
总是 0。
最佳答案
如果你真的需要检查,那么你可以使用 getnames
来测试成员资格。方法和 in
运算符:
>>> import tarfile
>>> tar = tarfile.open("sample.tar", "w")
>>> "sample.tar" in tar.getnames()
True
但是,我认为在 Python 中(以及一般处理文件系统),捕获异常是首选。最好尝试读取并捕获异常,因为在检查文件是否存在和稍后读取之间总是会发生事情。
>>> try:
... tar.getmember('contents.txt')
... except KeyError:
... pass
...
关于python - 如何使用 Python 检查文件是否存在于 tar 存档中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4180384/