如何在 python 的不同目录中提取 zip 文件?

How to extract zip file in different directory in python?

我正在编写一个 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

我预计上述脚本的输出应该提取路径 directories.But 内的所有文件我的代码正在文档目录“/Users/dipak.das/desktop/docs/”内创建一个目录并提取所有文件。

假设您希望提取的文件没有子目录...

完全未经测试,但也许可以试试

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()