You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python ZipFile创建压缩包时生成空ZIP文件问题求助

解决ZipFile生成空压缩文件的问题

可能的原因及解决方法

  • 目标文件不存在或路径错误:脚本中指定的file_1.txt等文件如果不在脚本执行的当前工作目录,ZipFile.write()不会抛出错误,但会跳过这些文件,最终生成空压缩包。
    • 解决:用os.getcwd()查看当前工作目录,确认文件位置;或者直接使用文件的绝对路径(比如'/Users/xxx/Documents/file_1.txt')。
  • 文件读取权限不足:如果脚本没有读取目标文件的权限,也会导致无法将文件添加到压缩包中。
    • 解决:检查文件的权限设置,确保当前用户有读取权限。
  • append模式使用不当:'a'模式要求目标zip文件已存在且格式合法,若原文件不存在,它会创建新的空zip,和'w'模式效果一致,所以换模式无法解决核心问题。

优化后的脚本示例

可以加入文件存在性检查和异常捕获,方便排查问题:

from zipfile import ZipFile
import os

files_to_zip = ['file_1.txt', 'file_2.txt', 'file_3.txt']

# 检查文件是否存在
for file_path in files_to_zip:
    if not os.path.exists(file_path):
        print(f"警告:文件 {file_path} 不存在,将跳过")

with ZipFile('file_name.zip', 'w') as zip_file:
    for file_path in files_to_zip:
        try:
            zip_file.write(file_path)
            print(f"已添加 {file_path} 到压缩包")
        except Exception as e:
            print(f"添加 {file_path} 失败:{str(e)}")

额外说明

Python 3.10.8的ZipFile模块并没有已知的会导致空压缩包的普遍bug,大概率是文件路径或权限问题导致的。

内容的提问来源于stack exchange,提问作者Angel del Pino

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 10:40:30