python 读写压缩文件
Python 读写 压缩文件
2023-09-14 09:07:33 时间
gzip 和bz2 模块可以很容易的处理这些文件。两个模块都为open() 函数提供了另外的实现来解决这个问题。比如,为了以文本形式读取压缩文件,可以这样做:
# gzip compression import gzip with gzip.open('somefile.gz', 'rt') as f: text = f.read() # bz2 compression import bz2 with bz2.open('somefile.bz2', 'rt') as f: text = f.read()
类似的,为了写入压缩数据,可以这样做:
# gzip compression import gzip with gzip.open('somefile.gz', 'wt') as f: f.write(text) bz2 compression import bz2 with bz2.open('somefile.bz2', 'wt') as f: f.write(text)
如上,所有的I/O 操作都使用文本模式并执行Unicode 的编码/解码。类似的,如果你想操作二进制数据,使用rb 或者wb 文件模式即可。
大部分情况下读写压缩数据都是很简单的。但是要注意的是选择一个正确的文件模式是非常重要的。如果你不指定模式,那么默认的就是二进制模式,如果这时候程序想要接受的是文本数据,那么就会出错。gzip.open() 和bz2.open() 接受跟内置的
open() 函数一样的参数,包括encoding,errors,newline 等等。当写入压缩数据时,可以使用compresslevel 这个可选的关键字参数来指定一个压缩级别。比如:
with gzip.open('somefile.gz', 'wt', compresslevel=5) as f: f.write(text)
默认的等级是9,也是最高的压缩等级。等级越低性能越好,但是数据压缩程度也越低。
最后一点, gzip.open() 和bz2.open() 还有一个很少被知道的特性,它们可以作用在一个已存在并以二进制模式打开的文件上。比如,下面代码是可行的:
import gzip f = open('somefile.gz', 'rb') with gzip.open(f, 'rt') as g: text = g.read()
这样就允许gzip 和bz2 模块可以工作在许多类文件对象上,比如套接字,管道和内存中文件等
相关文章
- python字符串格式化之学习笔记
- python apscheduler的使用研究
- Python读写zip压缩文件
- [Python] Python's namedtuples can be a great alternative to defining a class manually
- python搭建服务器
- 李白打酒python实现
- Python读写Excel表格,就是这么简单粗暴又好用(文末资料)
- Python可视化数据分析09、Pandas_MySQL读写
- 100天精通Python(数据分析篇)——第60天:Pandas读写xml文件(read_xml、to_xml参数说明+代码实战)
- 100天精通Python(基础篇)——第27天:迭代器、生成器、装饰器
- 【Python实战】全球疫情数据采集, 并做可视化展示
- python读写excel
- python读写配置文件使用总结与避坑指南
- Python实现GWO智能灰狼优化算法优化支持向量机分类模型(SVC算法)项目实战
- Python编程:yaml文件读写
- Python编程:读写excel文件
- python 设计模式之状态模式
- Python: 读文件,写文件
- Python开发入门之了解Python高阶函数
- Python自动化部署工具-Fabric
- OpenCV-Python实战(1) —— 给图片添加图片水印【利用 OpenCV 像素的读写原理实现】
- 【Python】Pickle/PyTorch反序列化漏洞
- 转载:大厂5G python自动化测试面试必会 | 迭代器与解析篇
- 《从零开始,学会Python爬虫不再难!!!》系列导航(持续更新中)
- Python异步并发机制详解,让你的代码运行效率就像搭上了火箭!!!