我们经常使用压缩程序对文件进行压缩打包,在 Python 中也提供了相应的 zipfile 模块方便我们对 ZIP 压缩文件进行操作。

读取 ZIP 压缩文件

读取 ZIP 压缩文件必须先创建 ZipFile 对象,通过调用 zipfile.ZipFile() 函数,传入 ZIP 文件名字符串就能获取到此 ZipFile 对象, ZipFile 对象与 File 对象类似,使用后需要调用 close() 函数关闭 ZIP 文件。使用 ZipFile 对象的 namelist() 方法可以返回 ZIP 文件中包含的所有文件夹和文件字符串列表。使用 ZipFile 对象的 getinfo() 方法可以传入 ZIP 里存在文件的字符串获取此文件的 ZipInfo 对象,可以再通过调用 file_size 获取文件压缩前的大小或调用 compress_size 获取文件压缩后的大小。通过计算 file_size / compress_size 就能获取到文件的压缩效率。

>>> import zipfile
>>> zf = zipfile.ZipFile('C:\\Users\\Caizi\\Python.zip')
>>> zf.namelist()
['Python/', 'Python/day01/', 'Python/day01/python01.py', 'Python/day01/python02.py', 'Python/readme.txt']
>>> readmeInfo = zf.getinfo('Python/readme.txt')
>>> readmeInfo.file_size
9239
>>> readmeInfo.compress_size
4348
>>> readmeInfo.file_size / readmeInfo.compress_size
2.124885004599816
>>> zf.close()

ZIP 压缩文件解压

使用 extractall() 函数,可以将 ZIP 压缩文件的所有内容解压到指定路径下。使用 extract() 函数,可以将 ZIP 压缩文件中的指定文件解压到指定路径下,函数返回解压后文件的绝对路径。

>>> import zipfile
>>> zf = zipfile.ZipFile('C:\\Users\\Caizi\\Python.zip')
>>> zf.extractall('C:\\zipTestAll')
>>> zf.extract('Python/readme.txt', 'C:\\zipTest')
'C:\\zipTest\\Python\\readme.txt'
>>> zf.close()

创建 ZIP 压缩文件

创建 ZIP 压缩文件必须以写模式打开 ZipFile 对象, ZipFile() 第一个参数为创建的压缩文件文件名,第二个参数为打开此文件的模式,即写模式 'w' 。使用 write() 方法将文件写入压缩文件里,第一个参数为要写入文件的文件名字符串,第二个参数为压缩算法。

>>> import zipfile
>>> zf = zipfile.ZipFile('C:\\Users\\Caizi\\new.zip', 'w')
>>> zf.write('C:\\Users\\Caizi\\zipcreate.txt', compress_type=zipfile.ZIP_DEFLATED)
>>> zf.close()

添加文件到 ZIP 压缩文件

添加文件到 ZIP 压缩文件与创建 ZIP 压缩文件方法相似,只不过在打开 ZipFile 对象时要以追加模式打开,即 ZipFile() 第二个参数设为 'a'

>>> import zipfile
>>> zf = zipfile.ZipFile('C:\\Users\\Caizi\\new.zip', 'a')
>>> zf.write('C:\\Users\\Caizi\\zipadd.txt', compress_type=zipfile.ZIP_DEFLATED)
>>> zf.close()

使用Python操作压缩文件相关推荐

  1. Python的压缩文件处理 zipfile tarfile

    本文从以下两个方面, 阐述Python的压缩文件处理方式: 一. zipfile 二. tarfile 一. zipfile 虽然叫zipfile,但是除了zip之外,rar,war,jar这些压缩( ...

  2. python读压缩文件内容_Python读写压缩文件的方法

    问题 你想读写一个gzip或bz2格式的压缩文件. 解决方案 gzip 和bz2模块可以很容易的处理这些文件. 两个模块都为 open()函数提供了另外的实现来解决这个问题. 比如,为了以文本形式读取 ...

  3. python读写压缩文件使用gzip和bz2

    python读写压缩文件使用gzip和bz2 #读取压缩文件 # gzip compression import gzip with gzip.open('somefile.gz', 'rt') as ...

  4. Python操作Zip文件

    Python操作Zip文件 需要使用到zipfile模块 读取Zip文件 随便一个zip文件,我这里用了bb.zip,就是一个文件夹bb,里面有个文件aa.txt.

  5. python处理excel表格实例-使用Python操作excel文件的实例代码

    使用的类库 pip install openpyxl 操作实现 •工作簿操作 # coding: utf-8 from openpyxl import Workbook # 创建一个excel工作簿 ...

  6. python入门教程2word-入门干货:Python操作Word文件经验分享

    原标题:入门干货:Python操作Word文件经验分享 导读:Microsoft Word在当前使用中是占有巨大优势的文字处理器,这使得Word专用的档案格式Word 文件(.docx)成为事实上最通 ...

  7. 手机使用python操作图片文件

    手机使用python操作图片文件 起因 前几天去国图拍了一本书,一本心理学方面的书,也许你问我为什么不去买一本,或者去网上找pdf. 其实吧,关于心理学方面的书可以说在市面上一抓就是一堆,至于拍这本书 ...

  8. 详解Python操作Excel文件

    前言 本篇文章主要总结了一下利用python操作Excel文件的第三方库和方法. 常见库简介 1.xlrd xlrd是一个从Excel文件读取数据和格式化信息的库,支持.xls以及.xlsx文件. 地 ...

  9. python gzip压缩文件

    python gzip压缩文件 下面的代码实现用gzip格式压缩文件,需要引用gzip包. #! import string import gzip from optparse import Opti ...

最新文章

  1. SpringBoot Thymeleaf使用教程(实用版)
  2. BLE-NRF51822教程6-创建一个自己的服务
  3. open-fopen read-fread等的不同 .
  4. Linux 终端下 dstat 监控工具
  5. android面试service,Android面试,与Service交互方式(4)
  6. python if else elif_Python之 if-elif-else
  7. Linux中用yum安装MySQL方法
  8. 那些年我们玩过的游戏
  9. Linux实验报告一【 下载配置搜狗安装包16.04】
  10. 机器学习笔记 - 什么是t-SNE?
  11. 腾讯下载的qlv格式视频转换mp4格式方法
  12. 【Python】Pymyql模块的execute()总结
  13. 小学计算机应用技术学院官网,成都信息技术学院官网
  14. 流量从“海量”到“僵化”,精细化运营是企业最后一根救命稻草
  15. U-Boot启动过程完全分析(转)
  16. MAC版本 12.2下 Lightroom2021版本闪退解决办法
  17. 2017计算机二级c语言试题,2017年计算机二级C语言试题
  18. “hellow world”哥 (2011-8-12 14:55)
  19. 解放双手 - Android 开发应该尝试的 UI 自动化测试
  20. 什么是云计算、云计算的特点、三种服务模式、四种部署模式

热门文章

  1. 64位murmurhash 源码
  2. 线性规划简单理解(LP问题)
  3. jsp中include 的两种用法
  4. 外卖点餐APP-04(后台--菜品管理)
  5. PSP程序开发例子解析(一)HelloWorld
  6. 怎么选择日语学习资料才能避坑不踩雷?(纯干货,建议收藏)
  7. 双语矩阵论课程笔记(1)—— 常用术语翻译
  8. 几何公差学习笔记(三)-- 公差的详细解释
  9. 程序员进入发展瓶颈?孤独?迷芒反思
  10. java中数组属于哪种类型_判断(2分) Java中数组的下标只能是各种整数数据类型