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学习笔记之os模块使用总结
Nov 03 Python
简单介绍Python中利用生成器实现的并发编程
May 04 Python
python通过函数属性实现全局变量的方法
May 16 Python
详解Python3的TFTP文件传输
Jun 26 Python
python 使用 requests 模块发送http请求 的方法
Dec 09 Python
Dlib+OpenCV深度学习人脸识别的方法示例
May 14 Python
Python进阶:生成器 懒人版本的迭代器详解
Jun 29 Python
Django多数据库的实现过程详解
Aug 01 Python
PyCharm2019安装教程及其使用(图文教程)
Sep 29 Python
Pytorch基本变量类型FloatTensor与Variable用法
Jan 08 Python
解决Python logging模块无法正常输出日志的问题
Feb 21 Python
Pytorch 使用opnecv读入图像由HWC转为BCHW格式方式
Jun 02 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 JSON格式数据交互实例代码详解
2011/01/13 PHP
PHP系列学习之日期函数使用介绍
2012/08/18 PHP
PHP中读取文件的8种方法和代码实例
2014/08/05 PHP
PHP简单获取及判断提交来源的方法
2016/04/22 PHP
PHP设计模式之策略模式原理与用法实例分析
2019/04/04 PHP
PHP sdk实现在线打包代码示例
2020/12/09 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
调用innerHTML之后onclick失效问题的解决方法
2014/01/28 Javascript
JavaScript中变量声明有var和没var的区别示例介绍
2014/09/15 Javascript
JQuery实现动态适时改变字体颜色的方法
2015/03/10 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
2015/05/14 Javascript
纯css实现窗户玻璃雨滴逼真效果
2015/08/23 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
AngularJS入门教程之迭代器过滤详解
2016/08/18 Javascript
深入理解Vue2.x的虚拟DOM diff原理
2017/09/27 Javascript
JavaScript多线程运行库Nexus.js详解
2017/12/22 Javascript
vue-router 源码之实现一个简单的 vue-router
2018/07/02 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
小程序数据通信方法大全(推荐)
2019/04/15 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
vue实现分页栏效果
2019/06/28 Javascript
使用uni-app开发微信小程序的实现
2019/12/13 Javascript
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
wxPython实现窗口用图片做背景
2018/04/25 Python
Django实战之用户认证(用户登录与注销)
2018/07/16 Python
浅谈python多进程共享变量Value的使用tips
2019/07/16 Python
Python 50行爬虫抓取并处理图灵书目过程详解
2019/09/20 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
10个python3常用排序算法详细说明与实例(快速排序,冒泡排序,桶排序,基数排序,堆排序,希尔排序,归并排序,计数排序)
2020/03/17 Python
房地产融资计划书
2014/01/10 职场文书
销售团队激励口号
2014/06/06 职场文书
司法局2014法制宣传日活动总结
2014/11/01 职场文书
2014年党建工作汇报材料
2014/11/02 职场文书
小学教师个人总结
2015/02/05 职场文书
有关朝花夕拾的读书笔记
2015/06/29 职场文书
Python如何导出导入所有依赖包详解
2021/06/08 Python