我正在尝试使用import tarfile
提取tar.gz实际问题是
在folder1.tar.gz中有一个dirctory和一些文件
like folder1.tar.gz-> folder2-> abc.txt,def.txt,folder3
import tarfile
tar=tarfile.open('folder1.tar.gz')
tar.extractall(targetdirectory)
它在我的targetdirectory中的folder2中提取abc.txt,def.txt,folder3 但我想在我的targetdirectory中的abc.txt,def.txt,folder3不想要文件夹2,我想要排除folder2。
答案 0 :(得分:0)
如果您知道存档结构,则可以将TarFile.getmembers()与TarFile.extractfile()结合使用,以获得所需内容。你可以做这样的事情
import tarfile
tar=tarfile.open('folder1.tar.gz')
for member in tar.getmembers():
if member.name.startswith('folder2/') and member.isfile():
inputfile = tar.extractfile(member)
with open(os.path.join(targetdirectory, member.name.replace('folder2/', '')), 'wb') as outputfile:
outputfile.write(inputfile.read())
inputfile.close()