Python-zipfile-zip压缩文件相关操作
本文最后更新于:2021年1月12日 下午
信息
zipfile
是Python
官方用于对zip压缩文件文件进行操作的库
这个模块提供了创建、读取、写入、添加及列出 ZIP
文件的工具
由于是官方的库,所以你并不需要担心安装的事情(它本身就在环境中了)
此模块目前不能处理分卷 ZIP
文件。它可以处理使用 ZIP64
扩展(超过 4 GB 的 ZIP
文件)的 ZIP
文件。它支持解密 ZIP
归档中的加密文件,但是目前不能创建一个加密的文件。解密非常慢,因为它是使用原生 Python
而不是 C
实现的
官方文档: https://docs.python.org/zh-cn/3/library/zipfile.html#zipfile-objects
使用
基础-创建/关闭 zipfile.ZipFile 对象
使用zipfile
库基本就是围绕着 ZipFile
类/对象 做各种各样的操作
例:生成一个空的压缩文件
1 |
|
参数名 | 信息 |
---|---|
file | 传入str 时为ZipFile 对象关闭后,文件保存的路径也可以传入 ByteIO 对象来承接保存的zip 文件二进制内容 |
mode | 操作模式, 和 open() 里的模式类似r 来读取一个存在的文件w 来截断并写入新的文件a 来添加到一个存在的文件x 来仅新建并写入新的文件, 如果 file 指向已经存在的文件,会报错 |
allowZip64 | 是否使用Zip64创建扩展的zip文件,默认为True 。如果指定为 False , 且最总zip 文件大于 4GB,那么文件处理会报错 |
compression | 压缩方法 可填入 ZIP_STORED , ZIP_DEFLATED , ZIP_BZIP2 如果不支持设定的模式可能会报错 |
compresslevel | 压缩级别,默认根据压缩方法自动计算 可以填入一个 0~9之间的整数 来设置。传入的 数字越小,压缩速度越快,压缩率越低。 具体参考官方说明 |
创建一个 ZipFile
对象并不会立刻在对应路径中创建文件
执行其 close
方法时才真正创建文件
可以使用 with
来自动调用 close
方法。使代码更加美观
写入压缩内容
实际上就是写入东西到 ZipFile
对象中ZipFile
有两个方法可以将内容写到压缩文件中
write
方法 传入文件路径,用于将已经存在的文件写入writestr
方法 直接写入新的内容
例:添加一些压缩内容
1 |
|
解压压缩文件
例: 将压缩文件内容解压出来
1 |
|
ZipFile.namelist()
返回列表,列表中的元素为压缩文件中的每个文件
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!