Как извлечь ZIP-файл в другой каталог в Python? - PullRequest
0 голосов
/ 30 октября 2019

Я пишу скрипт на python (2.7), который извлекает файлы из zip-файла с зашифрованным паролем. Для этого я использую модуль ZipFile для извлечения файлов в другой каталог. Я следовал за всем ответом, что бы ни упоминалось здесь. Как извлечь все файлы из zip-файла в другой каталог?

Я попытался извлечь все файлы в разные каталоги, но результат таков: он создает каталог внутри целевого каталога.

 try:
    with ZipFile(os.path.join(app.config['UPLOAD_FOLDER'], filename)) as zf:             
        zf.extractall('/Users/dipak.das/desktop/docs/',None,b'12345')
 except RuntimeError as e:
    print e

Я ожидал, что вывод приведенного выше сценария должен извлечь все файлывнутри каталогов пути. Но мой код создает каталог внутри каталогов документов "/Users/dipak.das/desktop/docs/" и извлекает все файлы.

1 Ответ

0 голосов
/ 30 октября 2019

Предполагая, что вы хотите извлечь файлы без подкаталогов ...

Полностью не проверено, но, возможно, попробуйте что-то вроде

import os, shutil

destdir = '/Users/dipak.das/desktop/docs/'
with ZipFile(os.path.join(app.config['UPLOAD_FOLDER'], filename)) as zf:
  for name in zf.namelist():
    source = zf.open(name, 'r', b'12345')
    destpath = os.path.join(destdir, os.path.basename(name))
    target = open(destpath, 'w')
    shutil.copyfileobj(source, target)
    target.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...