首页 > 解决方案 > 如何对迭代器进行压缩?

问题描述

我有一个生成数据的迭代器,我想对其进行解压缩。

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'

如何解压缩迭代器?数据无法加载到内存中。

标签: pythongzip

解决方案


如何解压缩迭代器?

你没有。gzip.decompress()不适用于任意迭代器。您需要将迭代器转换为可供gzip.decompress(). 我将从查看BytesIO.


推荐阅读