zip包里的结构不是固定的,有可能只需要解压一次就完成了,有可能解压后里面还存在zip文件,需要继续进行解压缩
写了个简单的递归函数来实现解压非固定结构zip包,若解压后的zip子目录下仍含有zip文件,则调用自身继续进行解压操作
解压函数unzip通过传入压缩文件所在绝对目录和压缩文件名进行解压操作
解压文件为C:UsersxiangminDownloads1522226134736.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:UsersxiangminDownloads' zfile=r'1522226134736.zip' unzip(path,zfile)