Архивирование папки в zip-файл с указанной структурой - PullRequest
0 голосов
/ 14 апреля 2020

В настоящее время я настраиваю функцию для архивирования всех файлов в каталоге (EXE_FOLDER) и экспорта в папку VERSION_ARCHIVE. Для этого я использую следующую функцию:

def zip_and_archive(version):
    zip_filename = f"software-{version}"
    shutil.make_archive(VERSION_ARCHIVE / zip_filename, 'zip', EXE_FOLDER)

Проблема в том, что у меня возникают проблемы, так как при архивировании я непосредственно архивирую все файлы, содержащиеся в папке EXE_FOLDER. Я хотел бы экспортировать все файлы в EXE_FOLDER в другую папку с тем же именем, что и ZIP-файл. Таким образом, когда файлы разархивированы, все они находятся в одной папке. Если это звучит странно, это может прояснить:

Если я заархивирую функцию, как указано, я получу следующую структуру:

./ZIP_filename.zip
 └── x.dll
 └── y.dll
 └── z.dll
 └── [...]
 └── software.exe  

Я бы хотел что-то подобное при разархивировании:

./ZIP_filename.zip
  └── ZIP_filename
      └── x.dll
      └── y.dll
      └── z.dll
      └── [...]
      └── software.exe  

Затем, когда я выполняю

, я знаю, что есть несколько вопросов, связанных конкретно с shutil.make_archive, однако я не смог найти прямого решения для этой проблемы. Надеюсь, что мне удалось быть точным и лаконичным, несмотря на длину текста.

...