Así que aquí está el problema. Tengo el archivo sample.gz que tiene aproximadamente 60 KB de tamaño. Quiero descomprimir los primeros 2000 bytes de este archivo. Me estoy quedando sin un error de verificación de CRC, supongo porque el campo gzip CRC aparece al final del archivo y requiere descomprimir todo el archivo comprimido. ¿Hay alguna forma de evitar esto? No me importa el cheque CRC. Incluso si no puedo descomprimir debido a un CRC malo, eso está bien. ¿Hay alguna forma de evitar esto y descomprimir archivos .gz parciales?Descomprimir parte de un archivo .gz usando python
El código que tengo hasta ahora es
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
El error encontrado es
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
También hay alguna manera de utilizar el módulo zlib para hacer esto y pasar por alto las cabeceras gzip?
Porque yo estoy interesado en la primera quizá 4k de los datos comprimidos. – user210126