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

如何用Python将目录中每个文件夹分别压缩为独立.zip归档文件?

解决方案

直接用os模块遍历目标文件夹,结合zipfile模块逐个创建对应的压缩包即可,以下是完整代码:

import os
import zipfile

# 配置路径:源文件夹所在目录、压缩包输出目录
source_root = r"D:\test\flo"
output_root = r"D:\test"

# 遍历源目录下的所有子项
for folder_name in os.listdir(source_root):
    folder_path = os.path.join(source_root, folder_name)
    # 仅处理文件夹(跳过文件)
    if not os.path.isdir(folder_path):
        continue
    
    # 生成对应压缩包的路径:输出目录 + 文件夹名.zip
    zip_file_path = os.path.join(output_root, f"{folder_name}.zip")
    
    # 创建并写入压缩包
    with zipfile.ZipFile(zip_file_path, 'w', zipfile.ZIP_DEFLATED) as zip_handler:
        # 遍历当前文件夹内的所有文件(含子目录)
        for root, _, files in os.walk(folder_path):
            for file in files:
                file_full_path = os.path.join(root, file)
                # 计算文件在压缩包内的相对路径(保持原文件夹结构)
                archive_path = os.path.relpath(file_full_path, source_root)
                zip_handler.write(file_full_path, archive_path)

关键逻辑说明

  • 压缩包命名:直接以遍历到的文件夹名称拼接.zip,用f"{folder_name}.zip"实现对应命名需求。
  • 文件写入:
    • 用os.walk递归遍历文件夹内所有文件,支持嵌套子目录场景。
    • os.path.relpath计算文件相对于源目录的路径,确保压缩包内的文件结构和原文件夹完全一致(不会包含D:\test\flo这类绝对路径)。
  • 压缩模式:zipfile.ZIP_DEFLATED启用压缩,若仅需打包不压缩,替换为zipfile.ZIP_STORED即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:22:06