当前位置: 首页 > article >正文

如何用Python批量解压ZIP文件?快速解决方案

如何用Python批量解压ZIP文件?快速解决方案

文章目录

  • **如何用Python批量解压ZIP文件?快速解决方案**
    • 代码
    • 结果
    • 详细解释

话不多说,先上干货!!!

代码

import os
import zipfiledef unzip_file(dir_path: str, zip_name: str, extract_dir: str, password: str = None):"""解压指定的 ZIP 文件到目标目录。@param dir_path: 包含 ZIP 文件的源目录路径@param zip_name: ZIP 文件的名称(不带 .zip 扩展名)@param extract_dir: 解压后的文件存放目录@param password: ZIP 文件的密码(可选)@return: 无返回值"""# 构造完整的 ZIP 文件路径zip_filepath = os.path.join(dir_path, zip_name + '.zip')# 构造解压目标路径extract_path = os.path.join(extract_dir, zip_name)# 创建解压目标目录,如果不存在if not os.path.exists(extract_path):os.makedirs(extract_path)try:# 打开 ZIP 文件with zipfile.ZipFile(zip_filepath, 'r') as extracting:# 如果设置了密码,尝试解压if password:extracting.setpassword(password.encode('utf-8'))# 解压所有文件到目标目录extracting.extractall(extract_path)print(f"成功解压:{zip_name}")except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")if __name__ == '__main__':# 设置源目录和目标目录路径dir_path = r'D:\桌面\baby'  # 源目录extract_dir = r'D:\桌面\ye'  # 目标目录# 获取 ZIP 文件列表for filename in os.listdir(dir_path):# 检查是否是 ZIP 文件if filename.endswith('.zip'):# 提取 ZIP 文件名(不带 .zip)zip_name = filename[:-4]try:# 解压 ZIP 文件,传递密码(如无需密码,可省略或设置为 None)unzip_file(dir_path, zip_name, extract_dir, password=None)except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")print(f"所有 ZIP 文件已解压到:{extract_dir}")

结果

image-20250519094853517

image-20250519101131362

image-20250519101237316

详细解释

  1. 导入必要的模块

    import os
    import zipfile
    
    • os:用于处理文件路径、目录创建等操作
    • zipfile:用于处理zip文件的解压
  2. unzip_file函数

    def unzip_file(dir_path: str, zip_name: str, extract_dir: str, password: str = None):"""解压指定的 ZIP 文件到目标目录。@param dir_path: 包含 ZIP 文件的源目录路径@param zip_name: ZIP 文件的名称(不带 .zip 扩展名)@param extract_dir: 解压后的文件存放目录@param password: ZIP 文件的密码(可选)@return: 无返回值"""# 构造完整的 ZIP 文件路径zip_filepath = os.path.join(dir_path, zip_name + '.zip')# 构造解压目标路径extract_path = os.path.join(extract_dir, zip_name)# 创建解压目标目录,如果不存在if not os.path.exists(extract_path):os.makedirs(extract_path)try:# 打开 ZIP 文件with zipfile.ZipFile(zip_filepath, 'r') as extracting:# 如果设置了密码,尝试解压if password:extracting.setpassword(password.encode('utf-8'))# 解压所有文件到目标目录extracting.extractall(extract_path)print(f"成功解压:{zip_name}")except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")
    
    • 功能:解压指定的ZIP文件到目标目录。

    • 步骤:①构造完整的ZIP文件路径和解压目标路径

      ​ ②创建解压目标目录,如果不存在则创建

      ​ ③打开ZIP文件,尝试解压到目标目录

      ​ ④处理异常,输出成功或失败信息

  3. 主程序部分

    if __name__ == '__main__':# 设置源目录和目标目录路径dir_path = r'D:\桌面\baby'  # 源目录extract_dir = r'D:\桌面\ye'  # 目标目录# 获取 ZIP 文件列表for filename in os.listdir(dir_path):# 检查是否是 ZIP 文件if filename.endswith('.zip'):# 提取 ZIP 文件名(不带 .zip)zip_name = filename[:-4]try:# 解压 ZIP 文件,传递密码(如无需密码,可省略或设置为 None)unzip_file(dir_path, zip_name, extract_dir, password=None)except Exception as e:print(f"解压失败:{zip_name}, 错误:{str(e)}")print(f"所有 ZIP 文件已解压到:{extract_dir}")
    
    • 功能:遍历源目录,解压所有ZIP文件到目标目录。

    • 步骤:①设置源目录dir_path和目标目录extract_dir

      ​ ②遍历源目录中的所有文件,筛选出ZIP文件

      ​ ③对于每个ZIP文件,调用unzip_file函数进行解压

      ​ ④处理异常,输出解压结果

看到这里就结束了,你学会了吗???

http://www.lryc.cn/news/2380190.html

相关文章:

  • DriveGenVLM:基于视觉-语言模型的自动驾驶真实世界视频生成
  • JavaScript 中的五种继承方式进行深入对比
  • 企业标准信息公共服务平台已开放标准通编辑器访问入口
  • [Linux]安装吧!我的软件包管理器!
  • Spring Boot 与 RabbitMQ 的深度集成实践(三)
  • 进阶-数据结构部分:1、数据结构入门
  • React 19中useContext不需要Provider了。
  • Json schema校验json字符串(networknt/json-schema-validator库)
  • 交易所开发:构建功能完备的金融基础设施全流程指南
  • Windows_Vs2022 C#语言开发环境构建
  • Axure疑难杂症:统计分析页面引入Echarts示例动态效果
  • 展锐Android14及更新版本split_build编译方法
  • 青少年ctf平台应急响应-应急响应2
  • k8s监控方案实践补充(二):使用kube-state-metrics获取资源状态指标
  • WEB安全--SQL注入--Oracle注入
  • 基于SpringBoot的小型民营加油站管理系统
  • 每日一道leetcode(新学数据结构版)
  • 深入掌握MyBatis:连接池、动态SQL、多表查询与缓存
  • Bootstrap 5 容器与网格系统详解
  • Java反射机制详解:原理、应用与实战
  • 技术架构缺乏灵活性,如何应对变化需求?
  • 【AI时代】Java程序员大模型应用开发详细教程(上)
  • 虚拟网络编辑器
  • 102. 二叉树的层序遍历递归法:深度优先搜索的巧妙应用
  • Github 2025-05-16 Java开源项目日报 Top9
  • MinerU安装(pdf转markdown、json)
  • Java卡与SSE技术融合实现企业级安全实时通讯
  • 第31讲 循环缓冲区与命令解析
  • mapbox-gl强制请求需要accessToken的问题
  • 数据结构(十)——排序