我有一個包含有三個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