Заставьте zlib.decompressobj() пропустить магию "ZLIB"

У меня есть куча файлов со встроенным zlib поток. Начинается со смещения 0x200 с волшебным заголовком "ZLIB" в первом файле; следующие файлы имеют продолжение с тем же смещением, без магии.

Проблема в том, когда я делаю

d=zlib.decompressobj()
s=open("file0.bin","rb")
o=open("out.bin","wb")
s.seek(0x200,0)
c=s.read(100000)
o.write(d.decompress(c))

d.decompress ошибки с error: Error -3 while decompressing: unknown compression method,

Если я стремлюсь 0x204 для первого файла и 0x200 для следующих это нормально, но это неудобно.

Так как ZLIB магия так часто обозначает zlib потоки, должен быть какой-то стандартный способ пропустить / добавить его.

Я видел, как Python распаковывает gzip chunk-by-chunk, но он имеет дело с заголовком GZip, который совершенно другой.

0 ответов

Другие вопросы по тегам