Python学习笔记组织文件之用zipfile模块压缩文件
随笔记录方便自己和同路人查阅。
#------------------------------------------------我是可耻的分割线-------------------------------------------
你可能熟悉 ZIP 文件(带有.zip 文件扩展名),它可以包含许多其他文件的压缩内容。压缩一个文件会减少它的大小,这在因特网上传输时很有用。
因为一个 ZIP 文件可以包含多个文件和子文件夹,所以它是一种很方便的方式,将多个文件打包成一个文件。这个文件叫做“归档文件”,然后可以用作电
子邮件的附件,或其他用途。
利用 zipfile 模块中的函数,Python 程序可以创建和打开(或解压)ZIP 文件。
#------------------------------------------------我是可耻的分割线-------------------------------------------
1、读取zip文件
要读取 ZIP 文件的内容,首先必须创建一个 ZipFile 对象(请注意大写首字母 Z和 F)。ZipFile 对象在概念上与 File 对象相似,你可能已经知道open()
函数返回 File 对象:它们是一些值,程序通过它们与文件打交道。要创建一个 ZipFile对象,就调用 zipfile.ZipFile()函数,向它传入一个字符串,表示.zip
文件的文件名。请注意,zipfile 是 Python 模块的名称,ZipFile()是函数的名称。
ZipFile()函数,读取文件,示例代码:
import zipfile,os
os.chdir('d:\\') # move to the folder with example.zip
#使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#namelist()函数,获取ZipFile对象的值
print(exampleZip.namelist())
运行结果:

因为新建example.zip时,向里面放入了report_data2.txt和spam.txt两个文件,打印ZipFile对象的值后显示这两个文件的名字。
2、从文件中解压
ZipFile 对象的 extractall()方法从 ZIP 文件中解压缩所有文件和文件夹,放到当前工作目录中。
import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#使用extractall()解压文件
exampleZip.extractall()
#关闭文件
exampleZip.close()
运行结果:
extractall()方法如果没有传入值,会默认解压到当前工作目录下,可以给他传递一个path,示例代码:
import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
exampleZip = zipfile.ZipFile('example.zip')
#使用extractall()解压文件
exampleZip.extractall('d:\\quiz')
#关闭文件
exampleZip.close()
运行结果:会吧example.zip文件解压到d:\\quiz文件夹下
3、创建和添加到zip文件
要创建你自己的压缩 ZIP 文件,必须以“写模式”打开 ZipFile 对象,即传入'w'作为第二个参数(这类似于向 open()函数传入'w',以写模式打开一个文本文件)。
如果向 ZipFile 对象的 write()方法传入一个路径,Python 就会压缩该路径所指的文件,将它加到 ZIP 文件中。write()方法的第一个参数是一个字符串,代表要添加的文件名。第二个参数是“压缩类型”参数,它告诉计算机使用怎样的算法来压
缩文件。可以总是将这个值设置为 zipfile.ZIP_DEFLATED(这指定了 deflate 压缩算法,它对各种类型的数据都很有效)。
import zipfile,os
os.chdir('d:\\')
# 使用zipfile模块的ZipFile()函数,获取ZipFile对象
newZip = zipfile.ZipFile('new.zip', 'w')
newZip.write('spam.txt', compress_type=zipfile.ZIP_DEFLATED)
newZip.close()
运行结果:
对在d盘中创建一个new.zip文件,其中包括spam.txt文件。
Python学习笔记组织文件之用zipfile模块压缩文件的更多相关文章
- [Python学习笔记]组织文件
shutil 模块 shutil 模块可以让我们很方便的在Python程序中复制.移动.改名和删除文件. 复制文件和文件夹 使用shutil.copy()来复制文件,该函数含两个参数,均为字符串格式的 ...
- Python学习笔记(15)- os\os.path 操作文件
程序1 编写一个程序,统计当前目录下每个文件类型的文件数,程序实现如图: import os def countfile(path): dict1 = {} # 定义一个字典 all_files = ...
- python 学习笔记 13 -- 经常使用的时间模块之time
Python 没有包括相应日期和时间的内置类型.只是提供了3个相应的模块,能够採用多种表示管理日期和时间值: * time 模块由底层C库提供与时间相关的函数.它包括一些函数用于获取时钟时间和处 ...
- Python学习笔记(十四):模块高级
以Mark Lutz著的<Python学习手册>为教程,每天花1个小时左右时间学习,争取两周完成. --- 写在前面的话 2013-7-23 21:30 学习笔记 1,包导入是把计算机上的 ...
- Java学习笔记之I/O流(读取压缩文件以及压缩文件)
1.读取压缩文件:ZipInputStream 借助ZipFile类的getInputStream方法得到压缩文件的指定项的内容,然后传递给InputStreamReader类的构造方法,返回给Buf ...
- Python学习笔记之爬取网页保存到本地文件
爬虫的操作步骤: 爬虫三步走 爬虫第一步:使用requests获得数据: (request库需要提前安装,通过pip方式,参考之前的博文) 1.导入requests 2.使用requests.get ...
- Python学习笔记_从CSV读取数据写入Excel文件中
本示例特点: 1.读取CSV,写入Excel 2.读取CSV里具体行.具体列,具体行列的值 一.系统环境 1. OS:Win10 64位英文版 2. Python 3.7 3. 使用第三方库:csv. ...
- 吴裕雄--天生自然python学习笔记:人脸识别用到的特征文件haarcascade_frontalface_default.xml下载
下载地址:https://github.com/opencv/opencv/tree/master/data/haarcascades 1.找到haarcascade_frontalface_defa ...
- python学习笔记之—— calendar(日历)模块
内置函数month() #!/usr/bin/python import calendar print calendar.month(2017,12) 输出: December 2017 Mo Tu ...
- Python学习笔记:读取Excel的xlrd模块
一.安装xlrd 可以使用命令行安装也可使用pycharm进行安装 表示xlrd库已经安装成功,安装成功后,我们就可以导入使用了. 二.xlrd说明 (1.单元格常用的数据类型包括 0:empty(空 ...
随机推荐
- RDD编程练习
一.filter,map,flatmap练习: 1.读文本文件生成RDD lines 2.将一行一行的文本分割成单词 words 3.全部转换为小写 4.去掉长度小于3的单词 5.去掉停用词 6.练习 ...
- Stanford NLP 在Python环境中安装、介绍及使用
Stanford NLP Stanford NLP提供了一系列自然语言分析工具.它能够给出基本的词形,词性,不管是公司名还是人名等,格式化的日期,时间,量词,并且能够标记句子的结构,语法形式和字词依赖 ...
- redis 5.0.5集群部署与服务器宕机故障模拟
背景 业务稳定性要求需要一套redis集群来保障 因此采用 redis cluster 集群 环境 名称 ip地址 cpu 内存 master端口 slave端口 redis-651 10.65.6. ...
- oracle 2个数组列,剔除数组重复的数据。
一.下面这样不规则的,数据如何剔除掉.循环筛选replace替换掉. 序号 正常时间 剔除时间 1 2022-12-19,2022-12-20,2022-12-21,2022-12-22,202 ...
- wpa_supplicant 交叉编译
交叉编译 wpa_supplicant 指定交叉编译环境: CC=arm-linux-xxxxx-gcc 运行错误 : wlan0: Unsupported driver 'nl80211' 在.c ...
- Windows11使用WSL Ubuntu搭建paddle的GPU环境
Windows11使用WSL Ubuntu搭建paddle的GPU环境 最近升级到了Windows11,突然有个大胆的想法:在Windows11上安装WSL,将所有开发环境安装到WSL中.这样就能在w ...
- QT debug/moc_frmalarminfo.o:(.data.rel.ro._ZTV12FrmAlarmInfo[_ZTV12FrmAlarmInfo]+0x1c0): undefined reference to `non-virtual thunk to FrmAlarmInfo::~FrmAlarmInfo()'解决方法
这个报错很具有迷惑性,,,我在网上还看见了ZTI12的报错,但是仔细一看发现是.o文件报错. 简单解释下.o文件(此解释来自百度): o 就是object, 也就相当于windows下编译的obj文件 ...
- 【QT】创建动态链接库及使用
创建动态链接库 创建一个项目 选择library的C++库,下一步. 选择共享库,输入动态库的名字,选择创建路径,下一步 选择编译环境,下一步 选择QTCore模块,该模块提供核心的非图形用户接口功能 ...
- (1028) 权限,chmod、chgrp、chown详解
https://www.cnblogs.com/Berryxiong/p/6193866.html 例1: $ chgrp - R book /opt/local /book 改变/opt/local ...
- pip install -r 是什么意思
我们经常使用python安装第三方库的的命令是 pip install xxx; 但是有一天,突然要执行的命令是: pip install -r requirements.txt,突然就不知道是什么意 ...