Python压缩文件夹/解压缩zip文件详解编程语言

[Python]代码    

#coding=utf-8 
#使用zipfile做目录压缩,解压缩功能 
 
import os,os.path 
import zipfile 
 
def zip_dir(dirname,zipfilename): 
    filelist = [] 
    if os.path.isfile(dirname): 
        filelist.append(dirname) 
    else : 
        for root, dirs, files in os.walk(dirname): 
            for name in files: 
                filelist.append(os.path.join(root, name)) 
         
    zf = zipfile.ZipFile(zipfilename, "w", zipfile.zlib.DEFLATED) 
    for tar in filelist: 
        arcname = tar[len(dirname):] 
        #print arcname 
        zf.write(tar,arcname) 
    zf.close() 
 
 
def unzip_file(zipfilename, unziptodir): 
    if not os.path.exists(unziptodir): os.mkdir(unziptodir, 0777) 
    zfobj = zipfile.ZipFile(zipfilename) 
    for name in zfobj.namelist(): 
        name = name.replace('//','/') 
        
        if name.endswith('/'): 
            os.mkdir(os.path.join(unziptodir, name)) 
        else:             
            ext_filename = os.path.join(unziptodir, name) 
            ext_dir= os.path.dirname(ext_filename) 
            if not os.path.exists(ext_dir) : os.mkdir(ext_dir,0777) 
            outfile = open(ext_filename, 'wb') 
            outfile.write(zfobj.read(name)) 
            outfile.close() 
 
if __name__ == '__main__': 
    zip_dir(r'E:/python/learning',r'E:/python/learning/zip.zip') 
    unzip_file(r'E:/python/learning/zip.zip',r'E:/python/learning2') 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/8077.html

(0)
上一篇 2021年7月18日 19:17
下一篇 2021年7月18日 19:17

相关推荐

发表回复

登录后才能评论