Ok maintenant le problème est que je ne peux pas charger correctement le fichier comme il se doit ... Quand je l'obtiens à charger réellement il conserve toujours une valeur et non toutes les valeurs.Correctement faire ce chargement de fichier correctement (python 2.7)
lista = {'Cop': '911', 'Police chief': '911'
, 'firemen' : '912', 'fire chef' : '912'
,}
fonction Enregistrer Je suppose que fin de travail (a le code de ma question)
def save(lista):
spara = lista
from collections import defaultdict
d = defaultdict(list)
fil = open("test" + ".txt","w")
for a, b in lista.items():
d[b].append(a)
for a, b in d.items():
fil.write(a+';'+';'.join(b)+"\n")
fil.close()
Comme la fonction de charge est supposé juste en dessous pour remplir le dictionnaire « » normalement « » et ont tous les les clés et les valeurs telles qu'elles étaient avant de les enregistrer dans le fichier.
def load(lista):
ladda = open("test" + ".txt","r")
for namesandnumbers in ladda:
(key,val) = namesandnumbers.split(";")
lista[(val)] = key[:len(key)]
lista = ladda
return lista
while True:
choice = input(" 1 add to list 2 to save 3 to load ")
if choice == 1:
word = raw_input("Type the key: ")
word2 = raw_input("Type the value: ")
lista[word] = word2
print lista
continue
if choice == 2:
save(lista)
elif choice == 3:
load(lista)
elif choice == 4:
False
Dans le fichier, il ressemble à ce
911, Cop, chef de la police;
912 pompiers, chef des pompiers;
Le problème est de savoir comment il se divise lors du chargement.
Utilisez plutôt le pickle. https://docs.python.org/2/library/pickle.html – FredMan
@FredMan picke n'est pas autorisé à être utilisé. l'aurait fait si c'était le cas. – noname292123
chat (ou autrement montrer) le contenu du fichier sauvegardé pour nous, et expliquer quelle est l'erreur que vous obtenez ou la sortie que vous obtenez avec la fonction de chargement. – FredMan