Pickle problem
Mario Ceresa
ceres83 at gmail.com
Fri Apr 18 11:55:16 EDT 2008
Hello everybody:
I'd like to use the pickle module to save the state of an object so to
be able to restore it later. The problem is that it holds a list of
other objects, say numbers, and if I modify the list and restore the
object, the list itself is not reverted to the saved one, but stays
with one element deleted.
An example session is the following:
Data is A [1, 2, 3, 4]
saving a with pickle
Deleting an object: del a[3]
Now data is A [1, 2, 3]
Oops! That was an error: can you please recover to the last saved data?
A [1, 2, 3] #### I'd like to have here A[1,2,3,4]!!!!!!
Is it the intended behavior for pickle? if so, are there any way to
save the state of my object?
Code follows
-----------------------
class A(object):
objects = []
-----------------------
then I run the code:
---------------------------------------
import pickle
from core import A
a = A()
for i in [1,2,3,4]:
a.objects.append(i)
savedData = pickle.dumps(a)
print "Saved data is ",a
print "Deleting an object"
del a.objects[3]
print a
print "Oops! This was an error: can you please recover the last saved data?"
print pickle.loads(savedData)
--------------------------------------------
Thank you for any help!
Mario
More information about the Python-list
mailing list