小编use*_*126的帖子

使用python解压缩.gz文件的一部分

所以这就是问题所在.我有sample.gz文件,大小约为60KB.我想解压缩此文件的前2000个字节.我正在运行CRC校验失败错误,我猜因为gzip CRC字段出现在文件的末尾,它需要整个gzip文件进行解压缩.有办法解决这个问题吗?我不关心CRC检查.即使我因CRC错误而无法解压缩,也没关系.有没有办法绕过这个并解压缩部分.gz文件?

我到目前为止的代码是

import gzip
import time
import StringIO

file = open('sample.gz', 'rb')
mybuf = MyBuffer(file)
mybuf = StringIO.StringIO(file.read(2000))
f = gzip.GzipFile(fileobj=mybuf)
data = f.read()
print data
Run Code Online (Sandbox Code Playgroud)

遇到的错误是

File "gunzip.py", line 27, in ?
    data = f.read()
File "/usr/local/lib/python2.4/gzip.py", line 218, in read
  self._read(readsize)
File "/usr/local/lib/python2.4/gzip.py", line 273, in _read
  self._read_eof()
File "/usr/local/lib/python2.4/gzip.py", line 309, in _read_eof
  raise IOError, "CRC check failed"
IOError: CRC check failed
Run Code Online (Sandbox Code Playgroud)

还有什么方法可以使用zlib模块执行此操作并忽略gzip标头?

python gzip zlib

8
推荐指数
3
解决办法
2万
查看次数

标签 统计

gzip ×1

python ×1

zlib ×1