python批量解压zip压缩文件夹

1.python批量解压zip压缩文件夹

import zipfile

def un_zip(zip_filename,des_dir):
    '''
    解压压缩包至des_dir指定文件夹
    :param zip_filename:输入的压缩包名字,例如a.zip
    :param des_dir: 解压到的位置:例如为  ./文件存储/
    :return:
    '''
    with zipfile.ZipFile(zip_filename, 'r') as zzz:
        # 捕捉错误并且 返回存在错误的 压缩包名称
        try:
            zzz.extractall(des_dir)
        except zipfile.BadZipFile:
            print("Error: 压缩文件不完整:",zip_filename)

实现效果不错哦~

Python中,你可以使用内置的`zipfile`模块来解压文件。为了批量解压当前文件夹及子文件夹中的压缩文件并保留原压缩文件的修改时间,你可以按照以下步骤进行: 1. 使用`os`模块遍历当前目录及其子目录,找到所有的压缩文件。 2. 对于每个找到的压缩文件,使用`zipfile`模块打开并解压。 3. 使用`shutil`模块复制文件时保留时间戳。 下面是一个简单的代码示例: ```python import os import shutil import zipfile import datetime def extract_zip(zip_path, extract_to): with zipfile.ZipFile(zip_path, 'r') as zip_ref: zip_ref.extractall(extract_to) # 获取原始文件的修改时间 ts = os.path.getmtime(zip_path) mod_time = datetime.datetime.fromtimestamp(ts) # 设置解压文件夹文件的时间戳为压缩文件的时间戳 for root, dirs, files in os.walk(extract_to): for file in files: os.utime(os.path.join(root, file), (ts, ts)) def batch_extract_zip(directory): for root, dirs, files in os.walk(directory): for file in files: if file.lower().endswith(('.zip', '.rar', '.gz', '.tar', '.tar.gz', '.tar.bz2', '.7z')): zip_path = os.path.join(root, file) extract_to = os.path.join(directory, "extracted", file.rsplit('.', 1)[0]) os.makedirs(extract_to, exist_ok=True) extract_zip(zip_path, extract_to) print(f"Extracted {zip_path} to {extract_to}") # 设置当前目录为你需要批量解压的顶级目录 current_directory = os.getcwd() batch_extract_zip(current_directory) ``` 这段代码首先定义了一个`extract_zip`函数,用于解压缩单个文件并尝试保留原始压缩文件的修改时间。然后定义了一个`batch_extract_zip`函数,它会遍历给定目录下的所有文件,对于压缩文件使用`extract_zip`函数进行解压。 请确保你的环境中已经安装了处理不同压缩格式所需的库,例如`rarfile`或`py7zr`,因为`zipfile`模块仅支持ZIP格式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王延凯的博客

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值