我是python的新手,我想从压缩文件中提取三个不同扩展名的单个文件。我不知道他们的文件名,只知道他们的扩展名。
我们假设存在以下格式:
--- ZippedDirectory.zip
if [[ $num = ?(-)+([0-9]) ]]; then …
我需要提取上面的文件,我只知道格式。此压缩存档中可能还有其他文件。 我很困惑如何实现这一点,任何帮助都会很棒!
谢谢!
答案 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)