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