吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 727|回复: 3
收起左侧

[Python 原创] 批量压缩或解压目录下的子目录

[复制链接]
aichiyu 发表于 2024-6-14 11:26
运行之后输入要压缩的目录,只压缩目标目录下的子目录。
[Asm] 纯文本查看 复制代码
import os
import zipfile

def compress_directory(dir_path):
    zip_filename = f"{dir_path}.zip"
    if os.path.exists(zip_filename):
        print(f"{zip_filename} 已经存在,跳过...")
        return
    with zipfile.ZipFile(zip_filename, 'w', zipfile.ZIP_DEFLATED) as zipf:
        for root, dirs, files in os.walk(dir_path):
            for file in files:
                file_path = os.path.join(root, file)
                arcname = os.path.relpath(file_path, start=dir_path)
                zipf.write(file_path, arcname)
    print(f"{dir_path} 已经压缩到 {zip_filename}")

root_dir = input('文件夹地址:')

# 遍历 root_dir 目录下的子目录
for dir_name in os.listdir(root_dir):
    full_dir_path = os.path.join(root_dir, dir_name)
    if os.path.isdir(full_dir_path):
        compress_directory(full_dir_path)


解压目标目录下的子目录压缩包

[Asm] 纯文本查看 复制代码
import os
import zipfile

def unzip_all_zip_files(directory):
    for root, dirs, files in os.walk(directory):
        for file in files:
            if file.endswith('.zip'):
                zip_file_path = os.path.join(root, file)
                target_dir = os.path.splitext(zip_file_path)[0]
                if not os.path.exists(target_dir):  # 跳过已存在的目录
                    with zipfile.ZipFile(zip_file_path, 'r') as zip_ref:
                        zip_ref.extractall(target_dir)
                    print(f"已解压文件 '{file}' 到目录 '{target_dir}'")

# 指定目录
directory_to_extract = input('文件夹地址:')

# 解压所有 zip 文件
unzip_all_zip_files(directory_to_extract)

免费评分

参与人数 1吾爱币 +7 热心值 +1 收起 理由
苏紫方璇 + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chewenbin1234 发表于 2024-6-14 12:30
受教了大神,谢谢
beihanwang 发表于 2024-6-14 14:06
hanbazhen 发表于 2024-6-15 10:48
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表