как с помощью zipfile распаковать файлы без внутрнеей структуры?
Есть архив со структурой
icons.zip
---icons
----folder1
-----1.png
-----2.png
----folder2
...
есть код который должен создать папку в которую он будет складывать файлы из это архива по годам/месяцам последнего изменения этих файлов
папка скрипта
---2022
----05
-----1.png
----06
-----2.png
сам код
def createrDir(name):
if os.path.exists(name):
return True
else:
try:
os.makedirs(name)
return True
except OSError as e:
print(f"Возникла ошибка: {e}")
return False
def checkDir(date):
if createrDir(os.path.join(outputDir, date.strftime("%Y")) and
createrDir(os.path.join(self.outputDir, date.strftime("%Y"), date.strftime("%m")))):
return True
else:
return False
zip = zipfile.ZipFile(inputDir)
for file in zip.namelist():
file_info = zip.getinfo(file)
date = datetime.datetime(*file_info.date_time)
file_name = os.path.basename(file_info.filename)
new_file = os.path.join(outputDir, date.strftime("%Y"), date.strftime("%m"), os.path.basename(file_name))
if file_info.is_dir():
continue
if checkDir(date):
zip.extract(file_name, new_file)
но почему-то этот код создает такую структуру
---2022
----05
-----1.png #это директория
------icons
-------apps
--------1.png #Это уже файл
----06
-----2.png #это директория
------icons
-------apps
--------2.png #Это уже файл
почему zip.extract() распаковывает данные с явным указанием места со всей структурой? и как это исправить?
Источник: Stack Overflow на русском