Comprimir objeto de Python en memoria

La mayoría de los tutoriales sobre la compresión de un archivo en Python implican la escritura inmediata de ese archivo en el disco sin la intervención de un objeto de Python comprimido. Quiero saber cómo encurtir y luego comprimir un objeto de Python en la memoria sin tener que escribir o leer desde el disco.

Lo uso para guardar la memoria en un solo lugar:

import cPickle import zlib # Compress: compressed = zlib.compress(cPickle.dumps(obj)) # Get it back: obj = cPickle.loads(zlib.decompress(compressed)) 

Si obj tiene referencias a un número de objetos pequeños, esto puede reducir la cantidad de memoria que se usa mucho. Una gran cantidad de objetos pequeños en Python se sumn debido a la sobrecarga de memoria por objeto, así como a la fragmentación de la memoria.

Baterias incluidas.

 >>> zlib.compress(pickle.dumps([42])) 'x\x9c\xd3\xc8)0\xe0\xf241\xe2J\xd4\x03\x00\x10A\x02\x87' 
 bz2.compress(pickle.dumps(some_object))