[Python-de] gzip-lib und "trailing garbage"

Hartmut Goebel h.goebel at goebel-consult.de
Sa Jan 26 14:09:05 CET 2013


Hallo,

ich versuche, mit dem Modul gzip eine Datei zu entpacken, die "trailing
garbage" enthält. (Konkret handelt es sich um einen Binärdatei, bei der
die gzippten Daten mitten drin liegen, ich kenne also deren Länge nicht.

Das Kommandozeilen gzip liest einfach, was auch immer es kann und
ignoriert den Rest mit der Warnung "ignoring trailing garbage".

Die Python gzip-lib scheint dagegen lustig weiter zu lesen, bzw.
versucht, einen weiteren Teil zu erkennen. Wenn es den nicht gibt, wird
ein IOError ausgelöst und die bis habin in dem Block dekomprimierten
Daten gelangen nicht nach an den Aufrufer :-(

Hier mein gescheiterter Versuch, das in Python zu implementieren.

gz = gzip.GzipFile(fileobj=infh)
with open(outfilename, 'wb') as outfh:
    while 1:
        d = gz.read(BLOCKSIZE)
        if not d: break
        outfh.write(d)
        if gz._new_member:
            break
infh.close()

Hat jmd. eine Idee, wie man das lösen könnte?


-- 
Schönen Gruß
Hartmut Goebel
Dipl.-Informatiker (univ), CISSP, CSSLP

Goebel Consult
http://www.goebel-consult.de

Monatliche Kolumne:
http://www.cissp-gefluester.de/2011-08-horrorszenario-bring-your-own-device
Blog: http://www.goebel-consult.de/blog/20050315

Goebel Consult ist Mitglied bei http://www.7-it.de/

-------------- nächster Teil --------------
Ein Dateianhang mit HTML-Daten wurde abgetrennt...
URL: <http://mail.python.org/pipermail/python-de/attachments/20130126/ad7dc1a4/attachment.html>
-------------- nächster Teil --------------
Ein Dateianhang mit Binärdaten wurde abgetrennt...
Dateiname   : smime.p7s
Dateityp    : application/pkcs7-signature
Dateigröße  : 3758 bytes
Beschreibung: S/MIME Kryptografische Unterschrift
URL         : <http://mail.python.org/pipermail/python-de/attachments/20130126/ad7dc1a4/attachment.bin>


Mehr Informationen über die Mailingliste python-de