Python压缩模块zipfile实现原理及用法解析


Posted in Python onAugust 14, 2020

一、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目录

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python实现网页链接提取的方法分享
Feb 25 Python
Python中运行并行任务技巧
Feb 26 Python
Python利用operator模块实现对象的多级排序详解
May 09 Python
Python实现的手机号归属地相关信息查询功能示例
Jun 08 Python
django站点管理详解
Dec 12 Python
深入解析python中的实例方法、类方法和静态方法
Mar 11 Python
Python线程指南分享
Nov 19 Python
python 字典访问的三种方法小结
Dec 05 Python
PyCharm设置Ipython交互环境和宏快捷键进行数据分析图文详解
Apr 23 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
Python 实现RSA加解密文本文件
Dec 30 Python
Python连续赋值需要注意的一些问题
Jun 03 Python
Python编写memcached启动脚本代码实例
Aug 14 #Python
Python自动巡检H3C交换机实现过程解析
Aug 14 #Python
基于python调用jenkins-cli实现快速发布
Aug 14 #Python
使用tensorflow进行音乐类型的分类
Aug 14 #Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 #Python
如何真正的了解python装饰器
Aug 14 #Python
详解python metaclass(元类)
Aug 13 #Python
You might like
发布一个用PHP fsockopen写的HTTP下载的类
2007/02/22 PHP
PHP n个不重复的随机数生成代码
2009/06/23 PHP
PHP Memcached应用实现代码
2010/02/08 PHP
解决PHP4.0 和 PHP5.0类构造函数的兼容问题
2013/08/01 PHP
PHP pear安装配置教程
2016/05/14 PHP
PHP正则之正向预查与反向预查讲解与实例
2020/04/06 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
JQuery一种取同级值的方式(比如你在GridView中)
2012/03/15 Javascript
IE6背景图片不缓存问题解决方案及图片使用策略多个方法小结
2012/05/14 Javascript
JavaScript插件化开发教程 (二)
2015/01/27 Javascript
Nodejs中session的简单使用及通过session实现身份验证的方法
2016/02/04 NodeJs
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
9种改善AngularJS性能的方法
2017/11/28 Javascript
React路由管理之React Router总结
2018/05/10 Javascript
纯javascript前端实现base64图片下载(兼容IE10+)
2018/09/14 Javascript
webstorm中配置Eslint的两种方式及差异比较详解
2018/10/19 Javascript
小程序实现搜索界面 小程序实现推荐搜索列表效果
2019/05/18 Javascript
vue2 拖动排序 vuedraggable组件的实现
2019/08/08 Javascript
vue-cli2与vue-cli3在一台电脑共存的实现方法
2019/09/25 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
[04:52]第二届DOTA2亚洲邀请赛主赛事第一天比赛集锦:OG娜迦海妖放大配合谜团大中3人
2017/04/02 DOTA
python中黄金分割法实现方法
2015/05/06 Python
python轻松查到删除自己的微信好友
2016/01/10 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
利用Python如何生成便签图片详解
2018/07/09 Python
Python自动巡检H3C交换机实现过程解析
2020/08/14 Python
Photobook澳大利亚:制作相片书,婚礼卡,旅行相簿
2017/01/12 全球购物
英国时尚运动品牌的合集:The Sports Edit
2017/12/20 全球购物
eBay瑞士购物网站:eBay.ch
2018/12/24 全球购物
mysql有关权限的表都有哪几个
2015/04/22 面试题
安全技术说明书
2014/05/09 职场文书
道德大讲堂实施方案
2014/05/14 职场文书
安全生产承诺书范文
2014/05/22 职场文书
初婚初育证明范本
2015/06/18 职场文书
Python实现天气查询软件
2021/06/07 Python
一文搞懂php的垃圾回收机制
2021/06/18 PHP