无法扩展以zip压缩的.zip(不允许操作)

时间:2019-01-30 13:44:53

标签: python python-3.x zipfile

我有一个包含多个文件的目录。我想使用其中一些文件创建档案(例如,仅名称在某些数组中列出的文件) 那是我的代码:

import zipfile
import os

def zip_files(report_dir):
    zipf = zipfile.ZipFile('report.zip', 'w', zipfile.ZIP_STORED)
    rep = ['1', '2', 'new']
    print('RRREP ', rep)
    for root, dirs, files in os.walk(report_dir):
        for file in files:
            title = file.title().split('_')[0]
            if title in rep:
                zipf.write(os.path.join(root, file))

    zipf.close()


zip_files('')

当我尝试扩展生成的档案时,我收到一条消息

  

无法展开“ report.zip”(错误1-不允许操作)

如果我从目录中添加了所有文件(=如果我删除了if...代码),则可以毫无问题地打开存档。

1 个答案:

答案 0 :(得分:0)

似乎创建一个空的zip文件可能会导致某些外部存档程序出现某些问题。

您的过滤器不匹配任何内容。将来,您可以使用标志来保护归档文件的创建,如果没有匹配项,则报告错误:

at_least_one_match = False

for root, dirs, files in os.walk(report_dir):
    for file in files:
        title = file.title().split('_')[0]
        if title in rep:
            at_least_one_match = True
            zipf.write(os.path.join(root, file))


if not at_least_one_match:
    raise Exception("No files were added. Archive is empty/corrupt")