2009-06-09 10 views
11

Wie würde ich als autodidaktischer Python-Bastler lernen, Binärdateien mit Standardformaten zu importieren und zu exportieren?Binärdatei IO in Python, wo zu starten?

Ich möchte ein Skript implementieren, das ePub E-Books (XHTML + CSS in einer Zip-Datei) in ein Mobipocket-Format (Palmdoc) konvertiert, damit der Amazon Kindle es lesen kann (als Teil eines größeren Projekt, an dem ich gerade arbeite).

Es gibt bereits ein großartiges Open-Source-Projekt für die Verwaltung von E-Book-Bibliotheken: Calibre. Ich wollte versuchen, dies alleine als Lern-/Selbstlernübung umzusetzen. Ich fing an, ihre python source code zu betrachten und erkannte, dass ich keine Ahnung habe, was vor sich geht. Natürlich besteht die große Gefahr darin, dass man bei irgendetwas Autodidakt ist, nicht zu wissen, was man nicht weiß.

In diesem Fall weiß ich, dass ich nicht viel über diese Binärdateien weiß und wie man mit ihnen im Python-Code arbeitet (struct?). Aber ich denke, dass ich wahrscheinlich viel Wissen über Binärdateien im Allgemeinen verpasse und ich hätte gerne Hilfe, um zu verstehen, wie man mit ihnen arbeitet. Here is a detailed overview der mobi/palmdoc-Header. Vielen Dank!

Edit: Keine Frage, guter Punkt! Haben Sie Tipps, wie Sie grundlegende Kenntnisse im Umgang mit Binärdateien erwerben können? Python-spezifische wäre hilfreich, aber andere Ansätze könnten auch nützlich sein.

TOM: Herausgegeben als Frage, hinzugefügt Intro/besserer Titel

+4

Also, was genau ist Ihre Frage? – NicDumZ

Antwort

10

Sie sollten wahrscheinlich mit dem struct Modul starten, wie Sie in Ihrer Frage zugespitzt, und natürlich, öffnen Sie die Datei als binär.

Im Grunde beginnen Sie einfach am Anfang der Datei und wählen Sie Stück für Stück. Es ist ein Ärger, aber kein großes Problem. Wenn die Dateien komprimiert oder verschlüsselt sind, können die Dinge schwieriger werden. Es ist hilfreich, wenn Sie mit einer Datei beginnen, von der Sie den Inhalt kennen, so dass Sie nicht ständig raten.

Versuchen Sie es ein wenig, und vielleicht entwickeln Sie spezifischere Fragen.

0

Zum Unterrichten von Python-Tools, die mit Binärdateien arbeiten, this will get you going. Auch Spaß. Übungen mit Binärdateien, Reißverschlüssen, Bildern ... viel mehr.

2

Wenn Sie Binärdateien konstruieren und analysieren wollen, gibt Ihnen das Strukturmodul die grundlegenden Werkzeuge, aber es ist nicht sehr freundlich, besonders wenn Sie Dinge betrachten wollen, die nicht eine ganze Anzahl von Bytes sind.

Es gibt einige Module, die helfen können, wie BitVector, bitarray und bitstring. (Ich bevorzuge bitstring, aber ich schrieb es und so kann voreingenommen sein).

Zum Analysieren von Binärformaten ist das hachoir Modul sehr gut, aber ich vermute, dass es für Ihre aktuellen Bedürfnisse zu hoch ist.

Verwandte Themen