Python 批量解压Zip文件

我最近有个需求需要将大量.zip文件解压后再进行检查,单独的解压太费时间了,于是写了这个脚本来快速实现需求,亲测脚本很好用:

import os
import zipfile

"""
@Author: Dragon Wu
@Time: 2023-10-29 22:47:00
"""


def unzip_file(dir_path: str, zip_name: str):
    """
    解压zip文件
    :param dir_path: 解压文件的
    :param zip_name: .zip文件的名称
    :return: void
    """
    os.chdir(dir_path)
    extracting = zipfile.ZipFile(zip_name + '.zip')

    # # 直接进行解压的话就会解压到当前的目录。
    # extracting.extractall()
    # 可以指定解压到某个文件夹里,如果没有这个文件夹,那么就自动生成一个新的文件夹。
    extracting.extractall(dir_path + "\\" + zip_name)

    # 最后记得关闭一下。
    extracting.close()


if __name__ == '__main__':
    dir_path = r"your directory path, like 'D:\dir'"

    for zip_name in os.listdir(dir_path):
        if zip_name[-4:] == ".zip":
            try:
                unzip_file(dir_path, zip_name[:-4])
            except:
                print(zip_name)

参考文档:如何在Python解压缩Zip文件-百度经验

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
批量解压zip文件Python提供了很多的库,包括zipfile、shutil和os等。下面我介绍一下使用这些库完成批量解压任务的步骤。 1. 导入库 首先需要导入zipfile、os和shutil三个库。zipfile库提供了解压缩包的方法,可以很方便地进行解压操作;os库提供了文件操作的方法,可以获取文件路径和创建文件夹等操作;shutil库提供了复制和移动文件等操作。 ``` import zipfile import os import shutil ``` 2. 定义解压函数 接下来我们需要定义一个函数来完成解压任务。这个函数接收一个zip文件路径和解压路径作为参数。 ``` def unzip_file(zip_path, unzip_path): # 打开zip文件 zip_file = zipfile.ZipFile(zip_path) # 创建解压文件夹 os.makedirs(unzip_path, exist_ok=True) # 遍历压缩包中的文件列表 for names in zip_file.namelist(): # 获取文件的绝对路径 zip_file.extract(names, unzip_path) # 关闭zip文件 zip_file.close() ``` 3. 循环处理zip文件 最后,我们需要使用os库来遍历指定目录下的zip文件。根据文件后缀名为.zip的特征,我们可以使用字符串的.endswith()方法来判断。 ``` # 指定文件夹路径 path = 'path/to/zipfiles' # 循环处理zip文件 for file in os.listdir(path): # 判断文件后缀是否为.zip if file.endswith('.zip'): # 拼接文件路径 file_path = os.path.join(path, file) # 定义解压后的文件夹路径 unzip_path = os.path.join(path, file[:-4]) # 调用函数解压文件 unzip_file(file_path, unzip_path) ``` 这样就完成了批量解压zip文件的任务。大家可以根据自己的需要,对函数进行修改和优化,实现更加灵活和高效的解压方式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值