python - 如何对迭代器进行压缩?
问题描述
我有一个生成数据的迭代器,我想对其进行解压缩。
import gzip
h = open('myfile.gz', 'rb')
data = iter(lambda: h.read(1024), b'')
gzip.decompress(data)
我得到:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib/python3.6/gzip.py", line 531, in decompress
with GzipFile(fileobj=io.BytesIO(data)) as f:
TypeError: a bytes-like object is required, not 'callable_iterator'
如何解压缩迭代器?数据无法加载到内存中。
解决方案
如何解压缩迭代器?
你没有。gzip.decompress()
不适用于任意迭代器。您需要将迭代器转换为可供gzip.decompress()
. 我将从查看BytesIO
.
推荐阅读
- python-2.7 - 我的 for 循环有什么问题?(Python 2)
- mysql - 如何在 MySQL 中获得 n 个连接结果
- sql - 如果他的至少一门课程在 Oracle 中返回特定值,则对他进行分类
- asp.net-mvc - Serilog 不会将日志写入 AWS Elasticsearch Service
- crystal-reports - 水晶报表或 Visual Studio Code 的其他替代品
- reactjs - 如何从顶级组件中获取类型函数的道具并在 redux 中使用它
- python - 无法更新 pip 或在 pip 中安装任何东西。使用蟒蛇
- mysql - 在另一个表中输入记录时自动将列添加到一个表中
- .net - NewtonSoft Json 反序列化属性列表作为对象数组
- javascript - 使用 AudioBuffer 作为 HTMLAudioElement 的来源?