前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python实现文件的压缩及解压

Python实现文件的压缩及解压

原创
作者头像
代码伴一生
修改2021-11-02 14:19:46
6710
修改2021-11-02 14:19:46
举报
文章被收录于专栏:代码伴一生代码伴一生

当我们遇到大量小文件的传输时,一般会涉及到文件的压缩和解压,下面对zip的压缩解压直接上代码

压缩:

代码语言:javascript
复制
    def zip_dir(dirname,zipfilename):

        """ 
        | ##@函数目的: 压缩指定目录为zip文件 
        | ##@参数说明:dirname为指定的目录,zipfilename为压缩后的zip文件路径 
        | ##@返回值:无 
        | ##@函数逻辑: 
        """

        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()  </pre> 解压缩: 

    def unzip_file(zipfilename, unziptodir):

        """ 
        | ##@函数目的: 解压zip文件到指定目录 
        | ##@参数说明:zipfilename为zip文件路径,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('/'):  
            p = os.path.join(unziptodir, name[:-1])  
            if os.path.exists(p):  
                # 如果文件夹存在,就删除之:避免有新更新无法复制  
                shutil.rmtree(p)  
            os.mkdir(p)  
        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()  </pre> 

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档