Crear un binario - LZW
Arnau Sanchez
arnau en ehas.org
Vie Mayo 12 20:24:49 CEST 2006
Buenas,
> Estoy creando un compresor basado en el algoritmo LZW. La cosa es que
> necesito transformar los datos en binario, de modo que en bastantes
> partes del prgrama debo escribir en un fichero de texto un bloque de
> solo 4 bits.
Meter 4 bits en un fichero puede ser una tarea ardua :-) 1 byte como
mínimo, ¿no? Pero quizá te refieras a que tu algoritmo genera bloques de
4 bits y los tienes que ir guandando en un fichero. En tal caso sería
mejor que los guardaras primero en memoria, y luego los vas volcando al
fichero, ya sea todo al final o por bloques (256 bytes, por decir algo).
Yendo a tu pregunta...
> Me comentaron que existen funciones en python para trabajar con este
> tipo de problemas.
Lo primero que me viene a la mente es el módulo struct
(http://docs.python.org/lib/module-struct.html), aunque no sé, sólo te
serviría si en algún momento tienes que convert bytes, int, long, etc, a
string (o sea, a algo que puedes meter en un fichero) o viceversa. No
tengo ni idea de LZH, así que no sé.
En cualquier caso, una vez buscando operaciones con bits encontré una
librería que lo hacía (no recuerdo el nombre, lo siento), pero no era
oficial, y no era plan de obligar a los usuario a instalala sólo para
eso. Así que al final hice lo de siempre cuando tienes que trabajar con
bits: <<, >>, &, |, y ancha es Castilla.
Pero concreta un poquito más y trataremos de ayudarte.
saludos
arnau
Más información sobre la lista de distribución Python-es