python - 无法展开使用 python 压缩的 .zip(不允许操作)
问题描述
我有一个包含多个文件的目录。我想用其中一些文件创建一个存档(例如,只有名称在某个数组中列出的文件)这是我的代码:
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...
-code),则可以毫无问题地打开存档。
解决方案
似乎创建一个空的 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")
推荐阅读
- python - Python:将函数应用于numpy 3d数组中的每个条目
- c++ - 将对象的值移动到另一个但避免复制
- angular - 找不到管道“翻译”错误在 Ionic 4 中显示
- android - Android 使用 NDK 录制通话
- c# - 未知的压缩方法
- selenium-webdriver - 需要帮助从现有功能文件运行场景
- angular - p-dialog onHide 不适用于 ngIf?
- python - 加载带有日期的熊猫
- go - 如何运行从github下载的golang项目
- javascript - 如何获取 javascript addeventlistener 输入的返回值