2009-06-09 10 views
11

Come hobbista pitone autodidatta, come potrei imparare a importare ed esportare file binari utilizzando formati standard?File binario IO in python, da dove iniziare?

Mi piacerebbe implementare uno script che tenga ePub ebooks (XHTML + CSS in un file zip) e lo converta in un formato mobipocket (Palmdoc) per consentire a Amazon Kindle di leggerlo (come parte di un più grande progetto a cui sto lavorando).

Esiste già un fantastico progetto open source per la gestione delle librerie di ebook: Calibre. Volevo provare a implementarlo da solo come esercizio di apprendimento/auto-insegnamento. Ho iniziato a guardare il loro python source code e ho capito che non avevo idea di cosa stesse succedendo. Certamente, il grande pericolo nell'essere autodidatti in qualsiasi cosa non è sapere quello che non sai.

In questo caso, so che non conosco molto su questi file binari e su come lavorare con loro in codice Python (struct?). Ma penso che probabilmente manchi molta conoscenza dei file binari in generale e vorrei un po 'di aiuto per capire come lavorare con loro. Here is a detailed overview delle intestazioni mobi/palmdoc. Grazie!

Modifica: nessuna domanda, buon punto! Hai qualche consiglio su come acquisire una conoscenza di base del lavoro con i file binari? Python specifico sarebbe utile ma potrebbero anche essere utili altri approcci.

TOM: A cura come questione, intro aggiunto/migliore titolo

+4

quindi qual è la tua domanda esatta? – NicDumZ

risposta

10

probabilmente si dovrebbe iniziare con il modulo struct, come lei ha alla sua domanda, e, naturalmente, aprire il file come un binario.

Fondamentalmente si inizia all'inizio del file e si scomposizione pezzo per pezzo. È una seccatura, ma non è un grosso problema. Se i file sono compressi o crittografati, le cose possono diventare più difficili. È utile se inizi con un file di cui conosci il contenuto, in modo da non indovinare tutto il tempo.

Provalo un po 'e forse ti farai evolvere domande più specifiche.

0

Per l'insegnamento di strumenti Python che funzionano con file binari, this will get you going. Anche divertente Esercizi con binari, cerniere, immagini ... molto altro.

2

Se si desidera costruire e analizzare i file binari, il modulo struct fornirà gli strumenti di base, ma non è molto amichevole, soprattutto se si desidera esaminare le cose che non sono un numero intero di byte.

Ci sono alcuni moduli che possono aiutare, come ad esempio BitVector, bitarray e bitstring. (Io preferisco bitstring, ma l'ho scritto e quindi potrebbe essere di parte).

Per analizzare i formati binari il modulo hachoir è molto buono, ma ho il sospetto che sia troppo alto per le vostre esigenze attuali.