Sauvegarder toutes les variables
RésoluPr.Witherfire Messages postés 84 Statut Membre -
Bonjour
Je voudrais sauvegarder toutes les variables d'un programme avec pickle. Je vois comment faire mais au lieu de sauvegarder une variable, une liste ou un dictionnaire, ne serait il pas possible d'avoir une liste ou un dictionnaire avec toutes les variables? Merci
Que Notch soit avec vous
7 réponses
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
tu veux également recréer ensuite ces variables?
-
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Un exemple de programme qui sauve ses variables globales:
import pickle def sauvonstout(): globs=list(globals()) saved=[] for v in globs: d=globals()[v] t=(str(type(d))) if t != "<class 'module'>" and t !="<class 'function'>": saved.append((v,pickle.dumps(d))) bytessaved=pickle.dumps(saved) fil=open("saved.yg","wb") fil.write(bytessaved) fil.close() a=1234567 sauvonstout()et un exemple de récupération:
import pickle def restore(pb): b=pickle.loads(pb) for n,p in b: v=pickle.loads(p) globals()["yg"+n]=pickle.loads(p) fil=open("saved.yg","rb") pb=fil.read() restore(pb) print(yga) -
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
En fait, j'ai testé et pour la récup, ça me dit
"C:\Program Files\Python311\python.exe" C:\Users\Pr.Witherfire\PycharmProjects\pickle2\main.py
Traceback (most recent call last):
File "C:\Users\Gwenneg\PycharmProjects\pickle2\main.py", line 8, in <module>
fil=open("C:\saved.yg","rb")
^^^^^^^^^^^^^^^^^^^^^^^^
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\saved.yg'Process finished with exit code 1
-
Bonsoir, il est évident que tu n'as pas dû sauvegarder dans le répertoire où tu souhaites le récupérer, c'est une raison pour laquelle on utilise des chemins absolus par rapport où se situe notre script, de plus yb_ge t'a montré un exemple, il ne faut pas sauvegarder tout ce qu'il y a dans globals ! Car cela enregistrera aussi les modules chargés etc.
-
Merci mais comment dois-je faire dans ce cas, si je ne peux pas utiliser global s?
EDIT : nan c'est bon j'ai compris comment merci.