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

Python中zipfile.ZipFile压缩函数无法运行,请求排查解决

问题排查与修复方案

核心问题分析

  • 语法错误:__main__写法错误
    代码中if __name__ == "__ main __":存在多余空格,正确写法应为if __name__ == "__main__"(双下划线中间为main,无空格),这个错误会导致主入口代码无法被正确触发执行。
  • 目标目录不存在会触发异常
    如果dest目录未提前创建,创建ZipFile对象时会抛出文件找不到的错误,需要先确保目标目录存在。
  • 可选优化:压缩包路径冗余问题
    默认archive.write会保留文件的完整路径结构,若希望压缩包内仅保留文件名,需指定arcname参数。

修复后的完整代码

import zipfile
import pathlib


def make_archive(filepaths, dest_dir):
    dest_path = pathlib.Path(dest_dir)
    # 确保目标目录存在,不存在则自动创建
    dest_path.mkdir(parents=True, exist_ok=True)
    zip_file_path = dest_path / "compressed.zip"
    # 启用压缩模式(默认是无压缩的存储模式)
    with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as archive:
        for filepath in filepaths:
            # 仅保留文件名,避免压缩包内出现冗余路径
            archive.write(filepath, arcname=pathlib.Path(filepath).name)


if __name__ == "__main__":
    make_archive(filepaths=["bonus 1.py", "bonus 2.py"], dest_dir="dest")

修复说明

  1. 修正了__main__的语法错误,确保主函数能被正确调用;
  2. 添加目录创建逻辑,自动生成不存在的目标目录;
  3. 启用ZIP_DEFLATED参数开启压缩(默认不压缩),同时通过arcname控制压缩包内的文件结构;
  4. 使用pathlib的路径拼接方式,让路径处理更严谨。

内容的提问来源于stack exchange,提问作者Nusrat Jahan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 08:03:18