pickle y unpickle de todas las variables locales

Pepe Aracil pepe en diselpro.com
Vie Feb 6 01:48:46 CET 2009


Opss!

donde puse:
...
locals()[k]=myself[k]
...

queria poner:

...
locals()[k]=pickle.loads(myself[k])
...

Salud.



Pepe Aracil escribió:
> Hola.
> 
> podrías crear un diccionario cuyas claves sean las claves de locals
> y sus valores los valores de locals pero serializados.
> 
> Algo así como:
> [code]
> myself={}
> exclude=['__builtins__', '__name__', '__doc__','myself','exclude']
> for k in locals().keys():
>    if k in exclude: continue
>    try:
>        myself[k] = pickle.dumps(locals()[k])
>    except:
>        print "%s no es pickleable" % k
> [/code]
> 
> No he probado este codigo que he tecleado al vuelo pero ...
> 
> cuando termina este bucle, deberias tener en el diccionario
> myself todo lo pickleable en locals.
> 
> Además podrías guardarte en el diccionario información como las entradas 
> del diccionario sys.modules, para recontruir el entorno
> posteriormente de la forma mas fidedigna posible.
> 
> Una vez lo tienes todo empaquetado en myself, ya lo puedes serializar
> todo a un fichero.
> 
> Deserializar para recontruir el entorno locals ya es trivial.
> 
> ...
> locals()[k]=myself[k]
> ...
> 
> Saludos.
> 
> 
> 
> 
> 
> 
> Jose Caballero escribió:
>> Hola a todos,
>>
>> ¿existe alguna forma sencilla de poder serializar todas las variables y
>> objetos que hay definidos en cierto momento de ejecución para poder
>> de-serializarlos más tarde?
>> Con los métodos dump() y load() de la pickle se puede hacer para un único
>> objeto, y además éste debe ser conocido a la hora de hacer el load(). 
>> Algo
>> así como
>>
>> myobj = pickle.load( file )
>>
>> Pero yo necesito poder hacer un load de TODAS las variables y objetos. 
>> Sería
>> algo así como hacer un dump de todo lo que hay listado en locals(), y 
>> luego
>> poder hacer un load de todo ello.
>> ¿Se puede hacer?
>>
>>
>>
>> Muchas gracias por adelantado.
>> Saludos,
>> Jose
>> _______________________________________________
>> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
>> FAQ: http://listas.aditel.org/faqpyes
> 
> _______________________________________________
> Lista de correo Python-es http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes

_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





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