使用 python 解压文件并使用 tarfile.extractall() python 提取某些文件

Untar files with python and extract certain files with tarfile.extractall() python

我正在尝试使用 tarfile.extractall() 解压文件,以便我可以使用可选参数 'members'.

获取目录中图像的子集

我有一个数组,其中包含我要提取的所有文件的文件名,我在此处传递这些文件,但据我了解,它们应该是 TarInfo 对象。如何将我的文件名数组转换为 TarInfo 对象数组?或者有更好的方法吗?

t = tarfile.open(filename, 'r')
t.extractall(out_dir, filearray)

如果需要使用extractall,您首先需要生成与filearray

匹配的tarinfo个对象的列表
members = [ x for x in t.getmembers() if x.name in filearray]

然后您可以将其传递给 extractall

t.extractall(out_dir, members)