从压缩文件中提取所选扩展名的所有文件

时间:2017-01-31 18:35:27

标签: python

我是python的新手,我想从压缩文件中提取三个不同扩展名的单个文件。我不知道他们的文件名,只知道他们的扩展名。

我们假设存在以下格式:

  

--- ZippedDirectory.zip

if [[ $num = ?(-)+([0-9]) ]]; then
    …

我需要提取上面的文件,我只知道格式。此压缩存档中可能还有其他文件。  我很困惑如何实现这一点,任何帮助都会很棒!

谢谢!

2 个答案:

答案 0 :(得分:2)

你应该可以做这样的事情

import zipfile


def main():
    archive = 'archive.zip'
    directory = './'
    extensions = ('.txt', '.pdf')
    zip_file = zipfile.ZipFile(archive, 'r')
    [zip_file.extract(file, directory) for file in zip_file.namelist() if file.endswith(extensions)]
    zip_file.close()


if __name__ == '__main__':
    main()

答案 1 :(得分:1)

我的是Jones的简单版本。只适用于一个扩展。

from zipfile import ZipFile

with ZipFile(r'C:\scratch\folder to process\try.zip') as theZip:
    fileNames = theZip.namelist()
    for fileName in fileNames:
        if fileName.endswith('py'):
            content = theZip.open(fileName).read()
            open(fileName, 'wb').write(content)
相关问题