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基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Django框架下在URLconf中指定视图缓存的方法
Jul 23 Python
Python常用内置模块之xml模块(详解)
May 23 Python
Python实现希尔排序算法的原理与用法实例分析
Nov 23 Python
python如何修改装饰器中参数
Mar 20 Python
Python基于pycrypto实现的AES加密和解密算法示例
Apr 10 Python
对numpy和pandas中数组的合并和拆分详解
Apr 11 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
python构建基础的爬虫教学
Dec 23 Python
PyCharm导入python项目并配置虚拟环境的教程详解
Oct 13 Python
基于Python实现视频的人脸融合功能
Jun 12 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 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 循环列出目录内容的函数代码
2010/05/26 PHP
PHP时间戳 strtotime()使用方法和技巧
2013/10/29 PHP
PHP创建PowerPoint2007文档的方法
2015/12/10 PHP
PHP Smarty模版简单使用方法
2016/03/30 PHP
Zend Framework入门教程之Zend_Mail用法示例
2016/12/08 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
Javascript的IE和Firefox兼容性汇编(zz)
2007/02/02 Javascript
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
jQuery判断密码强度实现思路及代码
2013/04/24 Javascript
利用毫秒减值计算时长的js代码
2013/09/22 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
node.js中的fs.fchmod方法使用说明
2014/12/16 Javascript
jQuery实现仿Google首页拖动效果的方法
2015/05/04 Javascript
js实现登陆遮罩效果的方法
2015/07/28 Javascript
简单的Vue SSR的示例代码
2018/01/12 Javascript
vue项目开发中setTimeout等定时器的管理问题
2018/09/13 Javascript
解决vue axios的封装 请求状态的错误提示问题
2018/09/25 Javascript
vuex管理状态 刷新页面保持不被清空的解决方案
2019/11/11 Javascript
vue倒计时刷新页面不会从头开始的解决方法
2020/03/03 Javascript
es6函数之箭头函数用法实例详解
2020/04/25 Javascript
JavaScript缺少insertAfter解决方案
2020/07/03 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
2020/11/16 Javascript
Python Nose框架编写测试用例方法
2017/10/26 Python
python实现字符串中字符分类及个数统计
2018/09/28 Python
python单向循环链表原理与实现方法示例
2019/12/03 Python
解决在keras中使用model.save()函数保存模型失败的问题
2020/05/21 Python
如何使用Pytorch搭建模型
2020/10/26 Python
python中K-means算法基础知识点
2021/01/25 Python
通过css3动画和opacity透明度实现呼吸灯效果
2019/08/09 HTML / CSS
Dr. Martens马汀博士官网:马丁靴始祖品牌
2016/10/15 全球购物
介绍一下gcc特性
2012/01/20 面试题
综合办公室个人的自我评价
2013/12/22 职场文书
高中语文课后反思
2014/04/27 职场文书
离婚协议书范本样本
2014/08/19 职场文书