zoukankan      html  css  js  c++  java
  • python zipfile压缩使用说明

    压缩

    f=zipfile.ZipFile(file, mode="r", compression=ZIP_STORED, allowZip64=False)

    创建一个zip文件对象,压缩是需要把mode改为‘w’,这个是源码中的注释Open the ZIP file with mode read "r", write "w" or append "a",a为追加压缩,不会清空原来的zip

    f.write(filename)

    将文件写入zip文件中,即将文件压缩

    f.close()

    将zip文件对象关闭,与open一样可以使用上下文with as

    write有2个可选参数:zipfile.write('原文件名',‘压缩后的文件名') #第一个是必填,第二个选填

    下面放个小demo

    import zipfile
    import os
     
    def zipDir(dirpath,outFullName,name):
        """
        压缩指定文件夹
        :param dirpath: 目标文件夹路径
        :param outFullName: 压缩文件保存路径+xxxx.zip
        :return: 无
        """
        zip = zipfile.ZipFile(outFullName,"a",zipfile.ZIP_DEFLATED)
        for path,dirnames,filenames in os.walk(dirpath):
            # 去掉目标跟路径,只对目标文件夹下边的文件及文件夹进行压缩
            fpath = path.replace(dirpath,'')
     
            for filename in filenames:
                zip.write(os.path.join(path,filename),os.path.join(name+fpath,filename))
        zip.close()

    压缩整个文件夹:

          zipfile模块对“文件夹”的压缩其实是由压缩文件的目录结构实现的,因此可以使用os模块的walk方法进行文件遍历、写入压缩文件。

    import zipfile,os
     
    with zipfile.ZipFile('aa.zip','w') as target:
        for i in os.walk('aa'):
            for n in i[2]:
                target.write(''.join((i[0],'\',n))) 
  • 相关阅读:
    System.Configuration引用后ConfigurationManager方法用不了
    HTTP 错误 500.23
    slide ——首尾相接の平滑切换效果
    函数式编程初探之回调
    Call & Apply. It's easy!
    【W3C】 CSS3选择器
    再谈原型和原型链
    ECMA学习小结(3)——constructor 和 prototype
    ECMA学习小结(2)——一切皆对象
    ECMA学习小结(1)——什么是ECMAScript,JAVAScript与ECMA的关系
  • 原文地址:https://www.cnblogs.com/dancesir/p/12765545.html
Copyright © 2011-2022 走看看