python一次性解压多层嵌套zip压缩包

zip包里的结构不是固定的,有可能只须要解压一次就完成了,有可能解压后里面还存在zip文件,须要继续进行解压缩python

写了个简单的递归函数来实现解压非固定结构zip包,若解压后的zip子目录下仍含有zip文件,则调用自身继续进行解压操做函数

解压函数unzip经过传入压缩文件所在绝对目录和压缩文件名进行解压操做blog

解压文件为C:\Users\xiangmin\Downloads\1522226134736.zip递归

import zipfile,os
def unzip(path,zfile):
    file_path=path+os.sep+zfile
    desdir=path+os.sep+zfile[:zfile.index('.zip')]
    srcfile=zipfile.ZipFile(file_path)
    for filename in srcfile.namelist():
        srcfile.extract(filename,desdir)
        if filename.endswith('.zip'):
            # if zipfile.is_zipfile(filename):
            path=desdir
            zfile=filename
            unzip(path,zfile)

path=r'C:\Users\xiangmin\Downloads'
zfile=r'1522226134736.zip'
unzip(path,zfile)
相关文章
相关标签/搜索