我正在尝试通过 python 脚本从网络服务器读取 gz 文件。源文件的大小为 60Mb 或更大。我不想等待读取整个文件来解压缩并读取内容。相反,我想在收到几个字节时解压缩信息。我试过这样做,但我被“CRC 检查失败”之类的错误关闭了。我正在使用 gzip 模块,因为服务器将内容编码返回为“gzip”。我也用 zlib 试试运气,但没有结果。我已经看到 Mozilla Firefox 或 Google Chrome 执行上述操作没有任何问题。我查看了 HTTP 标头,发现内容并没有一次全部接收到,但是浏览器能够在接收到它时显示解压缩的部分数据。他们是如何做到的呢 ?任何帮助表示赞赏。
问问题
139 次
1 回答
1
zlib.decompressobj
与wbits
参数 31一起使用。然后deobj.decompress()
将允许您一次解压 gzip 输入一个片段。
31 并不意味着 31 位。真的是15+16,其中15代表滑动窗口的最大大小为2^15字节,16是请求gzip格式解码的选项。不加 16会解码zlib格式,会拒绝 gzip 输入。
于 2012-08-30T12:43:50.830 回答