即时解压缩下载的gzip压缩内容

时间:2017-09-07 09:06:27

标签: python python-3.x python-requests gzip

我正在使用python下载带有gzip压缩的CSV,我想将其直接写为磁盘作为csv。

我尝试了以下几种变体:

url ='blabla.s3....csv.gz'
filename = 'my.csv'

compressed = requests.get(url).content
data = gzip.GzipFile(fileobj=compressed)
with open(filename, 'wb') as out_file:
    out_file.write(data)

但是我遇到了各种错误 - 我不确定我是否正在将响应的正确部分传递给gzip方法。如果有人有这方面的经验,我们非常感激。

1 个答案:

答案 0 :(得分:2)

您应该可以使用zlib解压缩响应。

import zlib

res = requests.get(url)
data = zlib.decompress(res.content, zlib.MAX_WBITS|32)

现在,写一个文件:

with open(filename, 'wb') as f:
    f.write(data)