python递归解压.zip文件

有时候,我们不光想要解压一个.zip文件,还想要解压这个zip文件里面的.zip文件,那么这个时候我们就需要使用到递归了,代码如下:

import os
import zipfile
import pathlib
import rarfile

def unzip_file(zip_src, dst_dir):
    r = zipfile.is_zipfile(zip_src)
    if r:
        fz = zipfile.ZipFile(zip_src, 'r')
        for file in fz.namelist():
            if pathlib.Path(file).suffix == '.zip':
                print(os.path.join(dst_dir, file), os.path.join(dst_dir, pathlib.Path(file).parent))
                unzip_file(os.path.join(dst_dir, file), os.path.join(dst_dir, pathlib.Path(file).parent))
            fz.extract(file, dst_dir)
    else:
        print('This is not zip')


# unzip_file("D:\test.zip", "D:\temp")

其中函数unzip_file里面的zip_src参数代表需要解压的.zip文件,dst_dir参数代表需要解压的目标路径。如果这个文件明明是.zip文件,但是程序却输出 This is not zip,那么你可以检查下路径中的左斜和右斜,我碰到这样的问题后,将路径中的右斜改为左斜就可以正常递归解压了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值