我有一段从库函数读取的字节缓冲区,我想解压内容(是一个单一的文本文件)。
我尝试使用zlib
,但是我得到了这个错误:
>>> import zlib
>>> zlib.decompress(buffer)
error: Error -3 while decompressing data: incorrect header check
使用ZipFile
可以实现,但需要使用临时文件:
import zipfile
f = open('foo.zip', 'wb')
f.write(buffer)
f.close()
z = ZipFile('foo.zip')
z.extractall()
z.close()
with open('foo.txt', 'r') as f:
uncompressed_buffer = f.read()
是否可以使用zlib
,如何避免使用临时文件?
from zlib import decompress, MAX_WBITS; decompress(gz_bytes, 16 + MAX_WBITS)
即可完成。详见 这里。 - bbaylesincorrect header check
也遇到了同样的问题。 - nowoxZipFile
一个“filename”而不是一个文件指针。 - nowox