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