从 Python 中的生成器创建一个 zip 文件?描述了一种将 .zip 从一堆文件写入磁盘的解决方案。
我在相反的方向也有类似的问题。我得到了一个生成器:
stream = attachment.iter_bytes()
print type(stream)
我很想将它传送到一个类似 tar gunzip 文件的对象:
b = io.BytesIO(stream)
f = tarfile.open(mode='r:gz', fileobj = b)
f.list()
但我不能:
<type 'generator'>
Error: 'generator' does not have the buffer interface
我可以像这样在shell中解决这个问题:
$ curl --options http://URL | tar zxf - ./path/to/interesting_file
在给定的条件下,我如何在 Python 中做同样的事情?