所以问题来了。我有一个大约60KB大小的sample.gz文件。我想要解压这个文件的前2000个字节。但是我遇到了CRC校验失败的错误,我猜测是因为gzip的CRC字段出现在文件末尾,需要整个gzipped文件才能解压缩。有没有办法绕过这个问题呢?我不关心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
遇到的错误是:
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
同时,有没有办法使用zlib模块来实现此操作并忽略gzip头部信息?