Распакуйте архив с "ZipFile" в Python и избавьтесь от x количества верхних папок (или укажите c) - PullRequest
0 голосов
/ 18 февраля 2020

Я ищу (простой) способ извлечения папки zip, но при извлечении игнорирую верхние папки или определенный путь.

Пример:

   - topdir/subdir/<files and dirs I want>

Так что я не хочу удалять абсолютно все каталоги, кроме верхних dir "topdir" и "subdir". В настоящее время у меня есть этот код:

def extract_zip(zip_file, extraction_path):
    with ZipFile(zip_file, 'r') as archive:
        try: 
            for file in archive.namelist():
                if file.startswith('topdir/subdir/'):
                    archive.extract(file, extraction_path)

Содержимое из "topdir" теперь игнорируется, и я извлекаю содержимое из "subdir". Но topdir и subdir все еще создаются, и мой контент находится внутри "subdir".

Как получить содержимое subdir (включая его подпапки) без создания папок topdir / subdir?

Может быть, лучше позвонить «unzip»?

Я ценю любые предложения, спасибо!

...