2017-05-13 1 views
-1

Mon code est juste un test pour que je puisse apprendre comment fonctionne le pickle. Il existe une liste de mots auxquels l'utilisateur peut ajouter un élément. Je veux ajouter le mot à la liste afin que lorsque le programme est exécuté à nouveau, la liste inclura le mot de l'utilisateur. Je ne comprends pas comment le faire, parce que vous devez d'abord définir la liste, je me retrouve avec les mots originaux ainsi que le mot l'utilisateur écrit dans ce déroulement du programmeComment puis-je utiliser pickle dans python 3 pour créer une fonction de sauvegarde

import pickle 

    class info(): 
     words = ['skylight','revenue'] 

    item = input("Type a word: ") 
    info.words.append(item) 

    with open("savefile.pickle","wb") as handle: 
     pickle.dump(info.words, handle) 

    with open("savefile.pickle","rb") as handle: 
     info.words = pickle.load(handle) 

    print(info.words) 

Répondre

0

Eh bien, vous Il faudra trouver un moyen de différencier le premier et le second passage. Je vous recommande de vérifier si le fichier de sauvegarde existe. Si c'est le cas, vous pouvez charger le pickle. Sinon, vous allez avec les "par défaut".

Ce que vous avez en ce moment, c'est de charger le pickle juste après l'enregistrement. Cela n'a aucun sens. Vous pouvez utiliser os.path.isfile pour déterminer si le fichier existe.

import pickle 
import os.path 

class info(): 
    words = ['skylight','revenue'] 

if os.path.isfile("savefile.pickle"): 
    with open("savefile.pickle","rb") as handle: 
     info.words = pickle.load(handle) 

item = input("Type a word: ") 
info.words.append(item) 

with open("savefile.pickle","wb") as handle: 
    pickle.dump(info.words, handle) 

print(info.words)