Как распаковать zip-файл в родительской папке файла в python3.x

У меня есть требование распаковать архив, выбрав его во время выполнения программы.

Я передаю zip-файл с помощью HTML input type file в моем шаблоне, а затем использую функцию ZipFile extractall(). Эта простейшая схема работает, однако распакованное содержимое сохраняется в корневой папке проекта (Django)

Я могу контролировать место хранения извлеченных файлов с помощью опции path, которая, как мне кажется, немного ограничивает возможности в том смысле, что в этом случае путь к папке должен быть жестко закодирован. (Существуют и другие способы предоставления информации пути во время выполнения, но все равно потребуется вмешательство пользователя.)

Поскольку файл является inmemory, я знаю, что информация path будет недоступна, что в противном случае было бы удобно.

Есть ли способ сохранить разархивированный файл в ту же папку, из которой был выбран разархивированный файл?

Спасибо, Букн.

использовать настройки django

from django.conf import settings

zipfile.extractall(settings.BASE_DIR/{path/to/dir})

не использовать настройки django

from pathlib import Path
path_zipfile = Path({path/to/zipfile})
zipfile = Zipfile(path_zipfile)
zipfile.extractall(path_zipfile.parent / {path/to/dir})

Вернуться на верх