[Python-de] Binärdaten patchen

Henning.Ramm at mediapro-gmbh.de Henning.Ramm at mediapro-gmbh.de
Don Jul 7 14:24:42 CEST 2005


Hallo zusammen!

Ich muss ziemlich große Dateien (bis ca. 300 MB) ver- und bearbeiten.
Einerseits muss ich zeilenweise lesen/schreiben, andererseits darf ich große binäre Blöcke auf keinen Fall verändern.

Genauer:
Ich muss den PostScript-Dateien unserer Zeitungsseiten einen Header hinzufügen, aber den ursprünglichen Header entfernen (oder zumindest auskommentieren).
Dafür muss ich also den ersten Teil der Datei zeilenweise einlesen (wobei gemischte Zeilenenden vorkommen können) und den Rest dann blockweise kopieren, ohne dass auch nur ein Byte verloren gehen darf und ohne dass Python versucht, irgendetwas zu decodieren.
Noch praktischer wäre es, wenn ich auch in diesem Teil noch nach "einfachen Zeilen" (DSC-Kommentaren) suchen könnte.
Das Ganze sollte auch noch möglichst effektiv sein...

Wie mache ich sowas mit Python?
Ich habe etwas Ähnliches mit Perl gefunden (O'Reilly Perl Kochbuch, S. 332), weiß aber nicht, ob ich Perls syswrite durch Pythons write ersetzen kann.
(Fertige Lösung willkommen, Hinweis auf passende Doku ebenso.)

Noch besser wäre es, wenn ich auch noch codiertes PostScript (z.B. ASCII85) entschlüsseln könnte...

Grüße vom Südsee!
Henning Hraban Ramm
Südkurier Medienhaus / MediaPro
Systembetreuung / Systementwicklung