2009-06-09 10 views
11

Como aficionado de python autodidacta, ¿cómo voy a aprender a importar y exportar archivos binarios usando formatos estándar?Archivo binario IO en python, ¿por dónde empezar?

Me gustaría implementar un script que tome ePub ebooks (XHTML + CSS en un zip) y lo convierta en un formato mobipocket (Palmdoc) para permitir que el Kindle de Amazon lo lea (como parte de un archivo grande proyecto en el que estoy trabajando).

Ya existe un impresionante proyecto de código abierto para gestionar las bibliotecas de libros electrónicos: Calibre. Quería implementar esto solo como un ejercicio de aprendizaje/autoaprendizaje. Empecé a mirar su python source code y me di cuenta de que no tenía idea de lo que estaba pasando. Por supuesto, el gran peligro de ser autodidacta en cualquier cosa es no saber lo que no sabes.

En este caso, sé que no sé mucho sobre estos archivos binarios y cómo trabajar con ellos en el código python (struct?). Pero creo que probablemente me faltan muchos conocimientos sobre archivos binarios en general y me gustaría obtener ayuda para entender cómo trabajar con ellos. Here is a detailed overview de los encabezados de mobi/palmdoc. ¡Gracias!

Editar: Sin duda, buen punto! ¿Tiene algún consejo sobre cómo obtener un conocimiento básico sobre cómo trabajar con archivos binarios? Específico de Python sería útil, pero otros enfoques también podrían ser útiles.

TOM: Editado como pregunta, introducción añadido/título mejor

+4

¿cuál es su pregunta exacta? – NicDumZ

Respuesta

10

probablemente debería comenzar con el módulo de struct, como usted ha señalado en su pregunta, y por supuesto, abrir el archivo como un archivo binario.

Básicamente, solo comienza al principio del archivo y lo separa pieza por pieza. Es una molestia, pero no es un gran problema. Si los archivos están comprimidos o encriptados, las cosas pueden ser más difíciles. Es útil si comienzas con un archivo del que conoces el contenido para no adivinar todo el tiempo.

Pruébalo un poco y tal vez desarrolles preguntas más específicas.

0

Para enseñar a ti mismo las herramientas de python que funcionan con archivos binarios, this will get you going. Tambien es divertido. Ejercicios con binarios, cremalleras, imágenes ... mucho más.

2

Si quiere construir y analizar archivos binarios, el módulo struct le dará las herramientas básicas, pero no es muy amigable, especialmente si quiere ver cosas que no son un número entero de bytes.

Hay algunos módulos que pueden ayudar, como BitVector, bitarray y bitstring. (Estoy a favor de bitstring, pero lo escribí y, por lo tanto, puedo estar sesgado).

Para analizar formatos binarios, el módulo hachoir es muy bueno, pero sospecho que es demasiado alto para sus necesidades actuales.

Cuestiones relacionadas