2016-07-13 18 views
2

Ich möchte eine bestimmte Zeichenfolge mit einem bereits vorhandenen Header aus einer bereits komprimierten Datei in einem Archiv (eine lokale Dateikopfzeile) abgerufen werden.Komprimieren Textzeichenfolge mit vorhandenen Komprimierung Header

Ich habe versucht, zlib zu betrachten, und während ihre Komprimierung/Dekomprimierung gut funktioniert, kann ich keine Option zum Festlegen der Komprimierung Header finden.

Ich möchte vermeiden, eine Datei zu dekomprimieren, fügen Sie der Datei eine Zeichenfolge hinzu, und komprimieren Sie die Datei erneut. Stattdessen möchte ich einfach eine gegebene Zeichenfolge an eine bestimmte komprimierte Datei "anhängen".

Ich habe Versuche mit dem vorhandenen Zipfile module in Python gemacht, hier habe ich versucht, das Zipfile-Modul zu ändern, um mit einem voreingestellten Header umzugehen, aber daraus kann ich schließen, dass das Zipfile-Modul zu stark auf der zlib-Bibliothek beruht damit dies möglich ist.

Während meine Versuche in Python gewesen sind, bin ich glücklich, irgendeine Programmiersprache zu verwenden.

+1

* "Ich habe Versuche gemacht" * - wo sind sie, und was ist das Problem mit ihnen. – jonrsharpe

+0

Bearbeitet, um obigen Kommentar zu reflektieren. – Nift

+0

Was ist das eigentliche Problem, das Sie versuchen zu lösen? – NPE

Antwort

1

Was Sie tun möchten, ist komplizierter als Sie denken. Der Code wurde jedoch bereits geschrieben. Betrachten Sie gzlog.h und gzlog.c in der examples directory der zlib distribution.

+0

Es scheint, dass dies verwendet wird, um in Protokolldateien und nicht in vorhandene Dateien wie einem komprimierten Dokument zu schreiben? Versteh ich hier etwas falsch? Ein Anwendungsbeispiel würde sehr geschätzt werden. – Nift

+0

"Ich möchte vermeiden, eine Datei zu dekomprimieren, fügen Sie eine Zeichenfolge in die Datei und dann komprimieren Sie die Datei. Stattdessen möchte ich einfach eine angegebene Zeichenfolge an eine bestimmte komprimierte Datei" anhängen "." Das ist _exactly_ was gzlog tut, da du gzlog benutzt hast, um die komprimierte Datei zu erstellen. Es vermeidet das Dekomprimieren oder Neukomprimieren. Wenn Sie an eine unvorbereitete gzip-Datei anhängen möchten, müssen Sie zuerst die gesamte Datei dekomprimieren, aber Sie müssen sie nicht erneut komprimieren, wie es gzappend.c tut (auch in Beispielen in zlib). –

+0

Bitte korrigieren Sie mich, wenn ich falsch liege, aber daraus ergebe ich, dass es unmöglich sein sollte, an eine Textdatei, die zuvor nur mit dem Komprimierungsheader der gegebenen Datei komprimiert wurde, anzuhängen, es sei denn, die Datei wurde mit gzlog komprimiert? Dieses Wesen ohne zu dekomprimieren und zu rekomprimieren. – Nift