Python解压多种格式压缩包

从效果来看,这个代码会递归解压所有的压缩文件

首先,你需要安装以下库:

pip install patool pyunpack rarfile py7zr

注意:对于RAR文件,你还需要系统上安装有unrar工具https://blog.csdn.net/CN_Polaris/article/details/128637569?fromshare=blogdetail&sharetype=blogdetail&sharerId=128637569&sharerefer=PC&sharesource=weixin_45592677&sharefrom=from_link

代码

python 复制代码
import os
from pyunpack import Archive

def extract_to_same_directory(archive_path):
    """
    解压各种格式的压缩包到压缩文件所在目录
    
    参数:
        archive_path (str): 压缩包文件路径
        
    支持格式: zip, rar, 7z, tar, gz, bz2 等
    """
    try:
        # 获取压缩文件所在目录
        archive_dir = os.path.dirname(archive_path)
        # 使用pyunpack解压(支持多种格式)
        Archive(archive_path).extractall(archive_dir,auto_create_dir=True)
    except Exception as e:
        print(f"解压失败: {str(e)}")

# 使用示例
if __name__ == "__main__":
    import sys
    
    archive_path = 'D:\\temp\新文件\机构-法律法规.zip'
    
    if not os.path.isfile(archive_path):
        print(f"错误: 文件 '{archive_path}' 不存在")
        sys.exit(1)
    
    extract_to_same_directory(archive_path)
相关推荐
毋语天2 分钟前
Python 常用内置模块详解:日志、随机数、时间、OS 与 JSON
开发语言·python
右耳朵猫AI8 分钟前
Python技术周刊 2026年第14周
开发语言·python·okhttp
2501_901200539 分钟前
MongoDB事务会产生多少性能损耗
jvm·数据库·python
zh15702316 分钟前
CSS如何通过Sass循环生成辅助类_批量创建颜色或间距样式
jvm·数据库·python
加号316 分钟前
【Python】 实现 HTTP 网络请求功能入门指南
网络·python·http
叼烟扛炮17 分钟前
C++ 知识点22 函数模板
开发语言·c++·算法·函数模版
神明93118 分钟前
golang如何实现滚动更新方案_golang滚动更新方案实现实战
jvm·数据库·python
CLX050518 分钟前
mysql复杂查询语句如何调优_通过改写子查询为JOIN连接
jvm·数据库·python
m0_6091604921 分钟前
Redis怎样在Spring中执行批量Pipeline指令
jvm·数据库·python
2301_7838486521 分钟前
如何实现SQL动态字段选择查询_利用反射或动态拼接字符串
jvm·数据库·python