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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
python使用minimax算法实现五子棋
Jul 29 Python
Python中print函数简单使用总结
Aug 05 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
关于tensorflow的几种参数初始化方法小结
Jan 04 Python
django模型动态修改参数,增加 filter 字段的方式
Mar 16 Python
Python基于yaml文件配置logging日志过程解析
Jun 23 Python
如何用Python 加密文件
Sep 10 Python
用 python 进行微信好友信息分析
Nov 28 Python
python使用torch随机初始化参数
Mar 22 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简单实例介绍文件上传
2015/12/16 PHP
PHP基于迭代实现文件夹复制、删除、查看大小等操作的方法
2017/08/11 PHP
textContent在Firefox下与innerText等效的属性
2007/05/12 Javascript
Firefox+FireBug使JQuery的学习更加轻松愉快
2010/01/01 Javascript
浅谈javascript语法和定时函数
2015/05/03 Javascript
AngularJS 让人爱不释手的八种功能
2016/03/23 Javascript
JavaScript基础教程——入门必看篇
2016/05/20 Javascript
JS结合bootstrap实现基本的增删改查功能
2016/07/22 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
JS匿名函数类生成方式实例分析
2016/11/26 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
AngularJS 使用ng-repeat报错 [ngRepeat:dupes]
2017/01/19 Javascript
bootstrap响应式工具使用详解
2017/11/29 Javascript
微信小程序实现红包功能(后端PHP实现逻辑)
2018/07/11 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
ionic3双击返回退出应用的方法
2019/09/17 Javascript
Vue使用NProgress的操作过程解析
2019/10/10 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
vue中路由跳转不计入history的操作
2020/09/21 Javascript
在Python中调用ggplot的三种方法
2015/04/08 Python
Python制作词云的方法
2018/01/03 Python
详解Python装饰器
2019/03/25 Python
用pyqt5 给按钮设置图标和css样式的方法
2019/06/24 Python
pytest中文文档之编写断言
2019/09/12 Python
Python 实现Image和Ndarray互相转换
2020/02/19 Python
需要知道的CSS3动画技术
2010/01/01 HTML / CSS
波兰最大的度假胜地和城市公寓租赁运营商:Sun & Snow
2018/10/18 全球购物
惠而浦美国官网:Whirlpool.com
2021/01/19 全球购物
英语翻译系毕业生求职信
2013/09/29 职场文书
爸爸的花儿落了教学反思
2014/02/20 职场文书
初中学习计划书范文
2014/09/15 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
董事长秘书工作总结
2015/08/14 职场文书
linux中nohup和后台运行进程查看及终止
2021/06/24 Python
Oracle中update和select 关联操作
2022/01/18 Oracle
中国古风插画师排行榜:夏达第一,第三是阴阳师姑获鸟皮肤创作者
2022/03/18 国漫