我有一个包含有三个zip文件这样一个zip文件:如何递归地解压缩zip文件在Python
zipfile.zip\
dirA.zip\
a
dirB.zip\
b
dirC.zip\
c
我想提取所有的都在目录中的zip文件中的内部zip文件与这些名字(dirA,dirB,dirC)。
基本上,我想下面的模式来结束:
output\
dirA\
a
dirB\
b
dirC\
c
我曾尝试以下:
import os, re
from zipfile import ZipFile
os.makedirs(directory) # where directory is "\output"
with ZipFile(self.archive_name, "r") as archive:
for id, files in data.items():
if files:
print("Creating", id)
dirpath = os.path.join(directory, id)
os.mkdir(dirpath)
for file in files:
match = pattern.match(filename)
new = match.group(2)
new_filename = os.path.join(dirpath, new)
content = archive.open(file).read()
with open(new_filename, "wb") as outfile:
outfile.write(content)
但它只能提取zip文件,我结束了:
output\
dirA\
dirA.zip
dirB\
dirB.zip
dirC\
dirC.zip
任何建议包括代码段将不胜感激因为我已经尝试了这么多不同的t打听并阅读文档没有成功。
请修改您的问题并提供[_Minimal,Complete,and Verifiable example_](https://stackoverflow.com/help/mcve),其中包含data.items()中的内容。 – martineau
@martineau感谢您的评论。 如上所述,数据保持 \ zipfile.zip> dirA.zip>一个 \ zipfile.zip> dirB.zip> b \ zipfile.zip> dirC.zip>Ç 我试图使问题的位更通用,不依赖于任何'数据',除了拉链内部有拉链。 – Yannis