Skip to main content
 首页 » 编程设计

python : Generating a gzip string by returning chunks

2025年05月04日12zhengyun_ustc

我要问一些我在 Stackoverflow 上找不到的东西。 我正在做一些 Django,我最近发现我可以使用生成器流式传输 HTTP 输出。 页面输出对于正常情况来说是完美的,但是我想使用 GZip 压缩流式传输页面输出。

我试过使用简单的 zlib.compress 函数,但无济于事。该函数生成小型 gzip 文件。

我想在处理数据时将小块数据作为字符串返回。这些 block 应该构成 Gzip 文件的内容。如何做到这一点? 谢谢。

请您参考如下方法:

使用 zlib.compressobj([level]) 和 Compress.compress(string) 和 Compress.flush([mode]) 来完成

import zlib 
def compress(chunks): 
    c = zlib.compressobj() 
    for chunk in chunks: 
       yield c.compress(chunk) 
    yield c.flush(zlib.Z_FINISH)