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

Python实现CSV文件压缩为ZIP格式的自定义函数开发求助

CSV转ZIP压缩包Python函数实现

以下实现仅依赖Python内置标准库,无需额外安装第三方包,适合新手直接使用。

完整函数代码

import os
import zipfile

def csv_to_zip(source_dir: str, source_csv_name: str, target_dir: str, target_zip_name: str) -> None:
    # 拼接得到源CSV的完整绝对路径
    source_csv_path = os.path.join(source_dir, source_csv_name)
    # 检查源CSV文件是否存在
    if not os.path.exists(source_csv_path):
        raise FileNotFoundError(f"指定的CSV文件不存在:{source_csv_path}")
    # 如果目标路径不存在就自动创建
    os.makedirs(target_dir, exist_ok=True)
    # 拼接得到目标ZIP的完整绝对路径
    target_zip_path = os.path.join(target_dir, target_zip_name)

    # 执行压缩操作
    with zipfile.ZipFile(target_zip_path, "w", zipfile.ZIP_DEFLATED) as zipf:
        # arcname参数指定压缩包内的文件名,设为源文件名即可避免打包多层目录结构
        zipf.write(source_csv_path, arcname=source_csv_name)
    
    print(f"压缩完成,ZIP包已保存到:{target_zip_path}")

函数参数说明

  • source_dir:源CSV文件所在的文件夹路径,例如 "/home/user/csv_files" 或者 "./source"
  • source_csv_name:要压缩的CSV文件的完整文件名,必须包含.csv后缀,例如 "sales_data.csv"
  • target_dir:生成的ZIP压缩包要存放的文件夹路径,例如 "/home/user/zip_output" 或者 "./output"
  • target_zip_name:生成的ZIP压缩包的完整文件名,必须包含.zip后缀,例如 "sales_data_2024.zip"

调用示例

你可以直接在脚本下方添加以下代码测试使用:

# 示例:将当前目录下source文件夹里的test.csv,压缩后存到当前目录output文件夹里的test.zip
if __name__ == "__main__":
    csv_to_zip(
        source_dir="./source",
        source_csv_name="test.csv",
        target_dir="./output",
        target_zip_name="test.zip"
    )

注意事项

  • 路径传入相对路径时,相对的是你运行Python脚本时的当前工作目录
  • 生成的ZIP包使用标准DEFLATED压缩算法,所有主流解压软件都可以正常打开
  • 如果要压缩多个CSV文件,只需要在with代码块里多次调用zipf.write()传入其他CSV路径即可

内容的提问来源于stack exchange,提问作者Χρήστος Γουμενίδης

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 16:51:01