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 ...
随机推荐
- Mock2 moco框架的http协议get方法Mock的实现
首先在Chapter7文件夹下再新建一个startGet.json startget.json代码如下,因为是get请求,所以要写method关键字,有两个,一个是有参数,一个是无参数的请求. [ { ...
- Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
https://blog.csdn.net/neosmith/article/details/53126924 通过源码可以看出,该工具类会获取所有网卡,依次进行遍历,取ip地址合理.索引值最小且不在 ...
- (count 或直接枚举) 统计字符 hdu1860
统计字符(很水) 链接:http://acm.hdu.edu.cn/showproblem.php?pid=1860 Time Limit: 1000/1000 MS (Java/Others) ...
- 【3D动画建模设计工具】Maxon Cinema 4D Studio for Mac 20.0
图标 Icon 软件介绍 Description Maxon Cinema 4D Studio R20 ,是由德国公司Maxon Computer一款适用于macOS系统的3D动画建模设计工具,是 ...
- django补充
通过表名获取app的name models.UserInfo._meta.app_label >>> from repository import models >>&g ...
- BashOnWindow安装mysql
1.下载mysql 服务器和客户端 sudo apt-get install mysql-server mysql-client 其中过程会让输入用户名和密码 2.启动mysql服务 sudo ser ...
- Centos7安装Openldap初级篇
openldap 单节点编译安装 1.获取源码包 #下载Berkeley DB www.oracle.com/technetwork/database/database-technologies/be ...
- 面向对象【day08】:异常处理(六)
本节内容 1.概述 2.异常梳理 3.异常梳理流程图 4.异常大全 5.自定义异常 一.概述 异常处理是当程序出错了,但是我们又不想让用户看到这个错误,而且我在写程序的时候已经预料到了它可以出现这样的 ...
- Windows 运行库
Microsoft Visual C++ 2005 Redistributable - 8.0.61001http://download.microsoft.com/download/8/B/4/8B ...
- MySQL数据类型1
1.float.double.decimal类型用法详解 三者的区别介绍 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型, ...