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)