使用内置的gzip模块解压缩字节流。
如果您有任何问题,请显示您使用的最小代码、确切的错误消息和回溯,以及print repr(your_byte_stream[:100])的结果
更多信息
1.有关gzip/zlib/deflate混淆的解释,请阅读this Wikipedia article的“其他用途”部分。
2.如果您有字符串而不是文件,那么使用zlib模块比使用gzip模块更容易。不幸的是Python docs不完整/错误:zlib.decompress(string[, wbits[, bufsize]])
...The absolute value of wbits is the base two logarithm of the size of the history buffer (the “window size”) used when compressing data. Its absolute value should be between 8 and 15 for the most recent versions of the zlib library, larger values resulting in better compression at the expense of greater memory usage. The default value is 15. When wbits is negative, the standard gzip header is suppressed; this is an undocumented feature of the zlib library, used for compatibility with unzip‘s compression file format.
首先,8<;=log2_window_size<;=15,其含义如上所述。然后应该是一个单独的arg的部分会被放到上面:
arg==log2_window_size意味着假设字符串是zlib格式(RFC 1950;HTTP 1.1rfc 2616混淆地称之为“deflate”)。
arg==-log2_window_size意味着假设字符串是deflate格式(RFC 1951;没有仔细阅读HTTP 1.1rfc的人实际上实现了什么)
arg==16+log_2_window_size意味着假定字符串为gzip格式(RFC 1952)。所以你可以用31。
以上信息记录在zlib C library manual。。。Ctrl-F搜索windowBits。