zoukankan      html  css  js  c++  java
  • windows下解压zip包,包含中文解析

    #coding=utf8
    import os
    import zipfile
    import sys,locale
    
    # 本来以为需要,结果不需要
    # def p(f):
    #     #print '%s.%s(): %s' % (f.__module__, f.__name__, f())
    #     return f()
    # 
    # 
    # sys_decode= p(locale.getdefaultlocale)[1]
    # print sys_decode
    
    
    def unzip_file(zipfilename, unziptodir):
        if not os.path.exists(unziptodir):
            os.makedirs(unziptodir, 0777)
        zfobj = zipfile.ZipFile(zipfilename)
        for name in zfobj.namelist():
            if name.endswith('/') :
                path=os.path.join(unziptodir, name)
                if not os.path.exists(path):
                    os.makedirs(path)
            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__':
        unzip_file('C:\Users\Administrator\Desktop\201712271043_life_v18.1.zip','D:\test')
    

      参考网站https://www.oschina.net/code/snippet_89296_9122

    参考代码:

    #coding=utf-8
    #甄码农python代码
    #使用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')
    

      

  • 相关阅读:
    Python装饰器
    Python常用内建模块
    Python文件的操作
    Python集合的操作
    Python字典的操作
    Python列表元组的操作
    os.path
    Python字符串的操作
    线性回归
    随机森林
  • 原文地址:https://www.cnblogs.com/slqt/p/9009074.html
Copyright © 2011-2022 走看看