擅长:python、mysql、java
<p>我觉得你应该查一下<a href="http://docs.python.org/library/zlib.html" rel="nofollow noreferrer"><strong>Python zlib</strong></a>图书馆</p>
<p>GZIP格式依赖于zlib,但引入了文件级压缩概念和CRC检查,这似乎是您目前不需要的。</p>
<p>例如,请参见这些<a href="http://www.doughellmann.com/PyMOTW/zlib/index.html" rel="nofollow noreferrer"><strong>code snippets from Dough Hellman</strong></a></p>
<p><strong>编辑</strong>:Doubh Hellman站点上的代码只显示如何使用zlib压缩或解压缩。如上所述,GZIP是“带信封的zlib”,在获取zlib压缩数据之前,您需要解码envellope。下面是更多的信息,其实没那么复杂:</p>
<ul>
<li>有关GZIP格式的详细信息,请参见<a href="http://www.gzip.org/zlib/rfc-gzip.html" rel="nofollow noreferrer"><strong>RFC 1952</strong></a></li>
<li>此格式以10字节的头开头,后跟可选的非压缩元素(如文件名或注释),然后是zlib压缩数据,然后是CRC-32(确切地说是“Adler32”CRC)。</li>
<li>通过使用<a href="http://docs.python.org/library/struct.html" rel="nofollow noreferrer"><strong>Python's struct module</strong></a>,解析头应该相对简单</li>
<li>然后,可以使用python的zlib模块来解压缩zlib序列(或者它的前几千字节,因为这是您想要做的事情),如上面的示例所示</li>
<li>可能要处理的问题:如果GZip存档中有多个文件,并且如果第二个文件在几千字节的块中开始,我们希望解压缩。</li>
</ul>
<p>很抱歉,我们既没有提供简单的过程,也没有提供现成的代码片段,但是,使用上面的指示对文件进行解码应该比较快速和简单。</p>