Tamaño en bytes de un diccionario

Francesc Altet faltet en carabos.com
Mar Mar 13 12:23:16 CET 2007


El dt 13 de 03 del 2007 a les 11:09 +0100, en/na Jose Francisco Gonzalez
va escriure:
> En un archivo aparte de otros datos quiero grabar un diccionario por lo que
> para grabarlo estoy usando el modulo pickle para convertirlo a str y
> grabarlo, lo que pasa es que para leer el archivo necesitaria saber los
> bytes que ocupaba el diccionario para el read.
> 
> ¿Como se sabe el tamaño en bytes del diccionario?

Según el libro "Python: Essential Reference", los diccionarios ocupan:

24 bytes + 12*2**n bytes, donde n = log(nitems, 2)

Evidentemente, esto es lo que ocupan en memoria. En disco depende mucho
de qué herramienta uses para serializar.

>  ¿El modulo pickle es la
> mejor opcion para grabar el diccionario?

Al menos es una de las maneras más cómodas. Si no tienes que guardar
demasiados datos (i.e. diccionarios hasta unos pocos miles de entradas),
adelante. Cuidado por que el pickle te va a consumir bastante más
espacio en disco que en memoria (aunque no sé decirte con precisión
cuánta más).

Saludos,

-- 
Francesc Altet    |  Be careful about using the following code --
Carabos Coop. V.  |  I've only proven that it works, 
www.carabos.com   |  I haven't tested it. -- Donald Knuth

------------ próxima parte ------------
_______________________________________________
Python-es mailing list
Python-es en aditel.org
http://listas.aditel.org/listinfo/python-es


Más información sobre la lista de distribución Python-es