我的问题是,是否可以用php、python或bash提取压缩文件(gzip deflate)http压缩?
我测试这个
import zlib
str_object1 = open('test.png', 'rb').read()
str_object2 = zlib.decompress(str_object1)
f = open('my_recovered_log_file', 'wb')
f.write(str_object2)
f.close()
以及一个得到这个结果的
File "testgz", line 4, in <module>
str_object2 = zlib.decompress(str_object1)
zlib.error: Error -3 while decompressing data: incorrect header check
ty
尽管zlib使用与gzip相同的机制来压缩/解压缩,但它们使用不同的头作为校验和。
Python的zlib可以解压缩gzip文件,但Python为此提供了一个方便的库gzip
。
PNG文件格式中嵌入了一个或多个zlib流。您需要对格式进行解码才能找到它们,此时您可以使用zlib.decompress
对它们进行解压缩。不能从一开始就使用zlib来解压缩.png文件。
有关格式,请参见PNG规范。
你的问题似乎很困惑,因为你举了一个试图解码.png文件的例子,但你问的是"(gzip deflate)http压缩",这是一件完全不同的事情。是的,您可以在正确使用wbits
参数的情况下对这些对象使用zlib.decompress
。