[python-esp-centro] Lasi: usar un "codec" como compresor de datos
lasizoillo
lasizoillo at gmail.com
Mon Mar 14 21:16:26 CET 2011
El día 14 de marzo de 2011 13:30, Jesus Cea <jcea at jcea.es> escribió:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
>
> Javi, dándole vueltas a tu presentación del jueves, se me ha ocurrido
> utilizar un CODEC para que el código python se almacene comprimido y/o
> cifrado.
>
Tienes una lista de los codecs que vienen por defecto para que veas
que la compresión o cifrado (de mentiras) no es algo que se me
ocurriera a mí, sino parte de las baterias de python.
http://docs.python.org/library/codecs.html#standard-encodings
> Entiendo que sería realizable, siempre que meta las cadenas como unicode.
>
No.
>>> type(u"lala".encode("zlib").decode("zlib"))
<type 'str'>
Tanto encode como decode forma parte de basestring. Los codecs de
compresión y encriptación trabajan mejor con cadenas binarias.
> ¿Qué opinas?.
>
Me parece una idea más que recomendable. Pero hay que tener cuidado
con el algoritmo de compresión a elegir. Si la cadena es corta, meter
el diccionario más la cadena comprimida puede ser contraproducente:
>>> cadena_corta = "Esta cadena no es excesivamente larga"
>>> len(cadena_corta)
37
>>> len(cadena_corta.encode("zlib"))
45
>>> len(cadena_corta.encode("bz2"))
69
Y no es que estos codecs no funcionen:
>>> cadena_larga = open("/tmp/fabric.pdf").read()
>>> len(cadena_larga)
195187
>>> len(cadena_larga.encode("zlib"))
117362
>>> len(cadena_larga.encode("bz2"))
116550
Resultado inverso al anterior.
Saludos:
Javi
--
--------------------------------------------------------------------------------------------------
Has recibido este mensaje porque estás suscrito al
grupo "python-esp-centro" de Grupos de Google.Para ver los debates visita http://groups.google.com/group/python-esp-centro/topics
--------------------------------------------------------------------------------------------------
More information about the Madrid
mailing list