В настоящее время я пытаюсь написать сценарий, который будет извлекать zip-файл, созданный в PowerShell с помощью Create-Archive
, в место назначения. Вот как я сейчас это делаю:
with zipfile.ZipFile(path_to_zip, 'r') as zip_ref:
zip_ref.extractall(destination_path)
По большей части это работает, но в zip-файле есть папка. Вместо того, чтобы копировать папку и файлы в этой папке, он копирует файлы в указанный destination_path
и переименовывает их. Например, у меня есть файл с названием «BatteryDead. html» в папке с именем «templates». При извлечении он помещает файл с именем templates\BatteryDead.html
в папку root.
Есть ли способ извлечь подпапку (и подпапки этой папки) как есть? С сохранением каталогов в исправном состоянии?
Следует отметить, что при открытии ZIP-файла без извлечения отображаются правильные каталоги и имена файлов.
Вот структура файла до извлечения:
./zipped_directory.zip
|
|
|-----templates/
|
|-----'BatteryDead.html'
|-----'testfile.txt'
После использования extractall()
:
/root/
|
|
|-----'templates\BatteryDead.html'
|-----'testfile.txt'
Это python версия 3.7.3