Skip to main content
 首页 » 编程设计

Python:从 tar.gz 中提取具有模式的特定文件而不提取完整文件

2025年05月04日10me-sa

我想从许多 tar.gz 文件中提取所有具有模式 *_sl_H* 的文件,而不是从存档中提取所有文件。

我找到了这些行,但无法使用通配符 ( https://pymotw.com/2/tarfile/ ):

import tarfile 
import os 
 
os.mkdir('outdir') 
t = tarfile.open('example.tar', 'r') 
t.extractall('outdir', members=[t.getmember('README.txt')]) 
print os.listdir('outdir') 

有人有想法吗? 非常感谢。

请您参考如下方法:

看看TarFile.getmembers()以列表形式返回存档成员的方法。获得此列表后,您可以根据条件决定要提取哪个文件。

import tarfile 
import os 
 
os.mkdir('outdir') 
t = tarfile.open('example.tar', 'r') 
for member in t.getmembers(): 
    if "_sl_H" in member.name: 
        t.extract(member, "outdir") 
 
print os.listdir('outdir')