Comment enregistrer les données dans python ? [Fermé]

Signaler
Messages postés
2
Date d'inscription
mercredi 7 janvier 2015
Statut
Membre
Dernière intervention
28 juin 2018
-
Messages postés
5394
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
31 juillet 2020
-
je veux ajouter une variable"b" à une liste "a" et que cette variable reste enregistrée même quand je ferme le programme et je rouvre. c'est à dire qu'à chaque fois que je réinitialise le programme la variable reste comme élément dans la liste.
a=[]
b=input("quel est votre nom?")
while b in a:
    print("nom déjà utilisé.")
    b=input("quel est votre nom?")
else:
    a.append(b)

que dois je écrire après pour qu' à chaque fois "b" s'ajoute à la liste "a" et ça reste pour toujours même si je ferme le programme. comme si j'ai créé un tinyDB .et merci d'avance.

1 réponse

Messages postés
5394
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
31 juillet 2020
891
Salut Tigrekhalil,

Tu devrais utiliser le module de sérialisation "pickle" de Python.

Sa fonction est de permettre la sauvegarde dans un format propre à Python, et la récupération commode des objets Python dont la sauvegarde est supportée.

Les listes sont, bien sûr, supportées :

https://docs.python.org/3/library/pickle.html#what-can-be-pickled-and-unpickled

exemple :

import pickle

# constitution d'une liste et sauvegarde
a = ['toto', 'titi', 'tutu']
with open('sauvegarde.pickle', 'wb') as fich:
    pickle.dump(a, fich)

# récupération des données sauvegardées
# dans une liste vierge
b = []
with open('sauvegarde.pickle', 'rb') as fich:
    b = pickle.load(fich)

Dal