J'ai besoin de sauvegarder une douzaine d'objets dans un fichier et de les restaurer plus tard. J'ai essayé d'utiliser une boucle for avec pickle et shelve mais cela n'a pas fonctionné correctement.
Edit.
Tous les objets que j'essayais de sauvegarder étaient dans la même classe (j'aurais dû le mentionner avant), et je n'avais pas réalisé que je pouvais simplement sauvegarder toute la classe comme ça :
import pickle
def saveLoad(opt):
global calc
if opt == "save":
f = file(filename, 'wb')
pickle.dump(calc, f, 2)
f.close
print 'data saved'
elif opt == "load":
f = file(filename, 'rb')
calc = pickle.load(f)
else:
print 'Invalid saveLoad option'
1 votes
Vous dites que vous avez essayé une boucle for. Veuillez afficher ce code, et expliquer pourquoi "cela n'a pas fonctionné correctement" (c'est-à-dire ce qui s'est passé et ce que vous vouliez qu'il se passe).
0 votes
Si vous êtes sous Windows, assurez-vous d'ouvrir les fichiers en mode binaire.
0 votes
@gnibbler : le mode binaire n'est nécessaire que pour les protocoles hors défaut ( docs.python.org/library/pickle.html#usage ).