python - zipfile模块
import zipfile # f=zipfile.ZipFile(filename, mode="r", compression=ZIP_STORED, allowZip64=False)
# filename是一个文件的路径
# mode a :追加模式
# mode r :只读模式
# mode w :写入模式
# allowZip64:是个bool型变量,当设置为True的时候就是说可以用来创建大小大于2G的zip文件,默认值是True; # 可判断是否是压缩文件:
# zipfile.is_zipfile(filename) # 将多个文件压缩成一个文件.
# with zipfile.ZipFile('test2.zip', mode='w') as zipf:
# zipf.write('a2.txt')
# zipf.write('a3.txt')
# zipf.write('a4.txt')
# zipf.write('a.txt') # 将文件解压到 abc文件内(当前文件下的abc文件)
# with zipfile.ZipFile('test.zip') as zipf:
# zipf.extractall('abc') # 获取压缩包内的文件名:
# with zipfile.ZipFile('test.zip','r') as zipf:
# for i in zipf.namelist():
# print(i) # 获取压缩包内的文件对象,可查看文件名,大小,mode
# with zipfile.ZipFile('test.zip','r') as zipf:
# for i in zipf.infolist():
# print(i)
# <ZipInfo filename='a2.txt' filemode='-rw-rw-rw-' file_size=43> # 将zip文件的目录结构打印到stdout上,包括每个文件的path,修改时间和大小
# with zipfile.ZipFile('test.zip','r') as zipf:
# zipf.printdir() # 打开压缩文件中的一个文件
# with zipfile.ZipFile('test.zip') as zipf:
# info = zipf.open("a.txt",'r')
# print(info.read())
四种压缩模式:
import zipfile"""ZIP_STORED (no compression), ZIP_DEFLATED (requires zlib),
| ZIP_BZIP2 (requires bz2) or ZIP_LZMA (requires lzma).""" # ZIP_STORED
# with zipfile.ZipFile('a.zip','w',compression=0) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_LZMA
# with zipfile.ZipFile('b.zip','w',compression=zipfile.ZIP_DEFLATED) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_BZIP2
# with zipfile.ZipFile('c.zip','w',compression=zipfile.ZIP_BZIP2) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt') # ZIP_LZMA
# with zipfile.ZipFile('d.zip','w',compression=zipfile.ZIP_LZMA) as z:
# z.write('a1.txt')
# z.write('a2.txt')
# z.write('a3.txt')
压缩效果:
如何压缩目录以及目录内的文件:
注意:
直接压缩文件的目录,那么压缩内只有压缩的目录,却没目录下的文件。
这里要用到os.walk 文件遍历的方法。
top -- 是你所要遍历的目录的地址, 返回的是一个三元组(root,dirs,files)。
- root 所指的是当前正在遍历的这个文件夹的本身的地址
- dirs 是一个 list ,内容是该文件夹中所有的目录的名字(不包括子目录)
- files 同样是 list , 内容是该文件夹中所有的文件(不包括子目录)
# with zipfile.ZipFile('CC2.zip','w',compression=zipfile.ZIP_DEFLATED) as z:
# for root, dirs, files in os.walk(r".\text", topdown=False):
# for name in files:
# print(os.path.join(root, name))
# z.write(os.path.join(root, name))
os.path.join(root, name) 拼接目录下的文件路径,然后传递给zipfile.write方法保存
python - zipfile模块的更多相关文章
- Python ZipFile模块详解(转)
Python zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下,我们只需要使用这两个cl ...
- Python zipfile模块学习
转载自https://www.j4ml.com/t/15270 import zipfile import os from zipfile import ZipFile class ZipManage ...
- python笔记之ZipFile模块
python笔记之ZipFile模块 zipfile模块用来做zip格式编码的压缩和解压缩的,zipfile里有两个非常重要的class, 分别是ZipFile和ZipInfo, 在绝大多数的情况下, ...
- python中zipfile模块实例化解析
文章内容由--“脚本之家“--提供,在此感谢脚本之家的贡献,该网站网址为:https://www.jb51.net/ 简介: zipfile是python里用来做zip格式编码的压缩和解压缩的,由于是 ...
- Python之路(第十八篇)shutil 模块、zipfile模块、configparser模块
一.shutil 模块 1.shutil.copyfileobj(fsrc, fdst[, length]) 将文件内容拷贝到另一个文件中,需要打开文件 import shutil shutil.co ...
- Python标准库学习之zipfile模块
ZipFile模块里有两个非常重要的class, 分别是 ZipFile和ZipInfo. ZipFile是主要的类,用来创建和读取zip文件,而ZipInfo是存储的zip文件的每个文件的信息的. ...
- Python连载13-shutile模块(续)和zipfile模块
一.shutil模块(续) 1.函数:upack_archive() (1)用法:解包操作 (2)格式:shutil.unpack_archive("归档文件地址“,”解包之后的地址“) ( ...
- python学习笔记之zipfile模块
为什么学习: 在做自动化测试平台的apk上传功能部分时候,涉及到apk上传后提取apk的icon图标,通过aapt解析apk,获取对应icon在apk中的地址,通过python的zipfile模块来解 ...
- python 压缩模块大杂烩(zipfile,bz2,lzma,gzip,tarfile,zlib)
[*] 以下压缩模块请结合python的官方文档(https://docs.python.org/3.5/library/index.html)来实践或者对比(我的是python 3.5) 1.pyt ...
随机推荐
- Java多线程-详细版
基本概念解释 并发:一个处理器处理多个任务,这些任务对于处理器来说是交替运行的,每个时间点只有一个任务在进行. 并行:多个处理器处理多个任务,这些任务是同时运行的.每个时间点有多个任务同时进行. 进程 ...
- 过滤富文本编辑器中的html元素和其他元素
https://blog.csdn.net/fjssharpsword/article/details/53467079 1.应用场景:从一份html文件中或从String(是html内容)中提取纯文 ...
- PHP手动搭建环境
php手动搭建环境有好多种组合,版本号不一致,会导致搭建失败. 我搭建的组合是: php5.6+MySQL5.6+Apache2.4的组合. 一.PHP语言包下载 首先从官网上下载php5.6 htt ...
- Hadoop记录-技术网站
Grafan监控:http://docs.grafana.org/ Tez:http://tez.apache.org/install.html 阿里巴巴镜像:https://opsx.alibaba ...
- Hadoop记录-监控几个思路
1.存活监控 基本监控,主要对进程的存活.端口连通性.url可检测性等指标进行监控. 2.2 可用性监控 主要指对用户而言是否可用,能否返回预期结果,通常部署在一些业务主流程或一些关键环节,如接口调用 ...
- springMVC下载中文文件名乱码【原】
重点就在于添加 "attachment;filename*=utf-8'zh_cn'" + fileName //遇到的现象是,下载含有中文文件名的文件时,能获取到文件,但是使用 ...
- PHP7 学习笔记(十一)使用phpstudy快速配置一个虚拟主机
说明:为了windows本地开发php方便,这里推荐使用PHP集成环境phpstudy. 目的:使用域名访问项目(tinywan.test) 1.官网:http://www.phpstudy.net ...
- maven打包可执行jar文件运行报错
起因 项目中同时依赖了Spring和MyBatis,并使用mybatis-spring集成MyBatis和Spring. 使用maven打包为可执行jar文件运行,打包插件为:maven-shade- ...
- GIT好文搜藏
git图解:代码区域总结 https://zhuanlan.zhihu.com/p/20175919 git跟传统的代码管理器(如:svn)不同, 主要区别在于git多了个本地仓库以及缓存区,所以即使 ...
- hadoop3.x的安装
请看https://www.cnblogs.com/garfieldcgf/p/8119506.html