python批量解压7z等

本文介绍了一个使用Python调用Bandizip的bz.exe来批量解压7z文件的脚本,脚本实现了多进程以提高效率。作者提到虽然未测试其他压缩格式,但预期应该也能解压。实测解压速度大约为100MB/s,并指出Bandizip在解压7z时可能较慢,但考虑到实用性,选择接受这一速度。
摘要由CSDN通过智能技术生成

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

因为下载了一批珍惜资源,需要尽快处理掉,所以搞了一个相对高效的解压脚本。脚本调用bandizip 的bz.exe,只解压过7z,未测试zip、tar、rar等格式,不过应该没问题。(需要添加后缀检测)
用了多进程,有点效果。

1.引入库

代码如下(示例):


# coding="utf-8"
#批量处理压缩文件名、解压缩与去除文件夹
import os
import re
import py7zr
import multiprocessing
from multiprocessing.pool import Pool

#这里允许多个密码,毕竟不能指望大量压缩文件密码相同。密码不多的话基本不影响速度。
#如果不知道密码,建议写个脚本暴力破解或者再去找找?
passes=[pw1,pw2]
#解压文件根目录
dirname=[filepath1,filepath2]
def unzip(contents,deep=0):
    # isdir用于判断路径是否为目录,是目录的话需要进一步的循环读取
    #文件夹下仅一个文件则,文件上移(去除冗余文件夹)
    topdir=os.path.dirname(contents)
    #文件夹下只有一个文件则文件上移,这里没认真写
    if re.findall(r"请直接保存文件夹",topdir):
        for i in os.listdir(topdir):
            curcontents=os.path.join(os.path.dirname(contents),i)
            newcontents=os.path.join(os.path.dirname(topdir),i)
            os.rename(curcontents,newcontents)
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值