Pickle a list
Rogerio Luz
rogeriosantosluz at gmail.com
Mon Mar 7 11:38:43 EST 2011
Hi All
I'd like to pickle an object instance with all values. So I
instanciate myClass and set some values including a list with more
values (in the __init__), then dump to file. I realized that the
pickled object don't saved my new list values (saved only the
"default" value) but saved a String and an int. What I'm doing wrong?
Thanks Rogerio
$ python3 pickler.py P
Dump: ['default', 1, 2, 3, 4, 5, 6, 7, 8, 9] TestStr 19900909
$ python3 pickler.py U
Load: ['default'] TestStr 19900909
# pickler.py
import sys
import pickle
class MyClass:
teste = 0
nome = None
lista = ["default"]
def __init__(self):
for reg in range(1,10):
self.lista.append(reg)
self.nome = "TestStr"
self.teste = 19900909
#main
def main(argv):
if argv[1] == "P":
with open('myClass.pickle', 'wb') as f:
myClass = MyClass()
print("Dump:",myClass.lista, myClass.nome, myClass.teste)
pickle.dump(myClass, f, pickle.HIGHEST_PROTOCOL)
elif argv[1] == "U":
with open('myClass.pickle', 'rb') as f:
myClass = pickle.load(f)
print("Load:",myClass.lista, myClass.nome, myClass.teste)
if __name__ == "__main__":
main(sys.argv)
More information about the Python-list
mailing list