我正在尝试从 tar 存档中获取单个文件。我有 tarfile 库,我可以做一些事情,比如在具有正确扩展名的列表中查找文件:
像他们的例子:
def xml_member_files(self,members):
for tarinfo in members:
if os.path.splitext(tarinfo.name)[1] == ".xml":
yield tarinfo
member_file = self.xml_member_files(tar)
for m in member_file:
print m.name
这很棒,输出是:
RS2_C0RS2_OK67683_PK618800_DK549742_SLA23_20151006_234046_HH_SLC/lutBeta.xml
RS2_C0RS2_OK67683_PK618800_DK549742_SLA23_20151006_234046_HH_SLC/lutGamma.xml
RS2_C0RS2_OK67683_PK618800_DK549742_SLA23_20151006_234046_HH_SLC/lutSigma.xml
RS2_C0RS2_OK67683_PK618800_DK549742_SLA23_20151006_234046_HH_SLC/product.xml
如果我说只是查找 product.xml 则它不起作用。所以我尝试了这个:
ti = tar.getmember('product.xml')
print ti.name
它没有找到product.xml,因为我事先猜测了路径信息。我不知道如何仅检索该路径信息,这样我就可以在提取后获取我的 product.xml 文件(感觉就像我无论如何都在用艰难的方式做事)但是是的,我如何找出那个路径以便我可以连接在它是从 tar 文件中提取的唯一文件之后,它是否可以在我的其他文件函数中读取和加载该 xml 文件?