利用python压缩子目录为 ZIP 文件

以下是一个 Python 脚本,它可以遍历指定根目录下的所有子目录,并将每一个子目录压缩为 ZIP 文件。非目录的文件会被直接跳过。

# -*- coding: utf-8 -*-

import os
import zipfile

def zip_directory(directory_path, output_path):
    """压缩指定目录为 ZIP 文件"""
    with zipfile.ZipFile(output_path, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, _, files in os.walk(directory_path):
            for file in files:
                file_path = os.path.join(root, file)
                zipf.write(file_path, os.path.relpath(file_path, directory_path))

def process_directories(root_dir):
    for item in os.listdir(root_dir):
        item_path = os.path.join(root_dir, item)
        if os.path.isdir(item_path) :
            # 压缩子目录
            zip_output_path = os.path.join(root_dir, f"{item}.zip")
            print(f"Compressing {item_path} to {zip_output_path}")
            zip_directory(item_path, zip_output_path)
        else:
            print(f"Skipping {item_path}")

if __name__ == '__main__':
    # 替换为你的根目录路径
    root_directory = '/path/to/your/root_directory'
    process_directories(root_directory)

说明:

  1. zip_directory(directory_path, output_path):这个函数将指定的目录压缩为 ZIP 文件。
  • directory_path:要压缩的目录路径。
  • output_path:生成的 ZIP 文件的路径。
  1. process_directories(root_dir):这个函数遍历指定根目录下的所有子目录,并调用 zip_directory 函数进行压缩。
  • root_dir:根目录路径。
  1. os.path.isdir(item_path):检查路径是否为目录。

  2. os.path.relpath(file_path, directory_path):在 ZIP 文件中保持目录结构。

使用步骤:

  1. 将脚本中的 '/path/to/your/root_directory' 替换为你的根目录路径。
  2. 运行脚本:
python script_name.py

注意事项:

  • 确保在运行脚本之前备份重要数据,以防止意外情况。
  • 脚本会在根目录中生成以子目录名称命名的 ZIP 文件。
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容