• python常识系列12-->python对文件进行压缩解压缩基于zip格式


    前言

      当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地。
      笔者在实现自动化测试框架的时候,由于测试报告中的html报告和文件夹中的图片都要发作为邮件附件发送,所以笔者干脆先做成压缩文件后再发邮件。分享分享python如何进行文件压缩的。
    

    一、python压缩模块简介

    • python直接通过内置压缩模块可以直接进行压缩文件的创建;
    • 内置模块 zipfile/rarfile 完成压缩文件的操作。

    二、 zipfile模块基础使用

    • 2.1 对一个文件进行zip压缩
    # 把当前目录的test.txt文件压缩到a.zip压缩包中
    import zipfile
    
    f = zipfile.ZipFile('a.zip', 'w', zipfile.ZIP_DEFLATED)
    f.write('test.txt')
    f.close()
    

    上述代码中:

    • a.zip是压缩后要保存的文件名
    • w 表示写入压缩文件的含义
    • ZIP_DEFLATED表示压缩;ZIP_STORE表示只打包,不压缩(类似Linux中的gz跟tar格式)
    • write方法:目前填写的参数 test.txt 为当前目录下的文件,它表示要压缩的文件。
    • 2.2 对一个zip压缩文件进行解压缩
    # 把当前目录的a.zip压缩包中的test.txt进行解压
    import zipfile
    
    f = zipfile.ZipFile('a.zip','r')
    f.extract('test.txt')
    

    上述代码中:

    • a.zip 是当前目前下的压缩包文件,该压缩包目前只压缩了一个 test.txt 文件
    • extract() 方法的作用就用来进行解压缩,参数填写的是 a.zip 压缩包中必须包含的文件名信息
    • 如果我不知道压缩包中包含了什么文件信息,那就比较麻烦。可以用namelist()方法解决,如下2.3
    • 2.3 对一个zip压缩文件中的所有文件进行解压缩
    import zipfile
    
    f = zipfile.ZipFile('a.zip','r')
    for file in f.namelist():
        f.extract(file,'./temp')
    

    上述代码中:

    • namelist()方法返回压缩包中包含的所有文件信息,返回值为 list 类型
    • 通过循环的方式把所有都进行解压到 当前目录下的temp目录
  • 相关阅读:
    PHP学习笔记二十八【抽象类】
    PHP学习笔记二十七【重写】
    PHP学习笔记二十六【类的重载】
    PHP学习笔记二十五【类的继承】
    BZOJ4001[TJOI2015]概率论(数学、期望、生成函数、卡特兰数)
    BZOJ5091摘苹果(概率、期望)
    [Codeforces1009E]Intercity Travelling 数学题
    ZJOI2009狼和羊的故事
    洛谷P2050[NOI2012]美食节(网络流+动态加边优化)
    apk编辑器制作共存失败的一个可能的原因(第一次手动制作的教训)
  • 原文地址:https://www.cnblogs.com/dream66/p/12873927.html
Copyright © 2020-2023  润新知