У меня есть zip файл, который содержит в нем три zip файла следующим образом:
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
Любые предложения, в том числе сегменты кода, будут очень ценными, потому что я пробовал так много разных вещей и читал документы без успеха.