これでファイルを正しく読み込むことができなくなりました。実際にロードするには、常に1つの値しか保持しません。すべての値。このファイルを正しくロードするにはどうすればいいですか?(python 2.7)
lista = {'Cop': '911', 'Police chief': '911'
, 'firemen' : '912', 'fire chef' : '912'
,}
保存機能以下のロード機能は、ちょうどすべての「通常」「辞書を埋めるために仮定」と持っているように私は
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()
(私の質問からコードを得ました)その作業罰金を推測キーと値をファイルに保存する前の状態に戻します。コップ;警察署長、それはこの
911のように見えるファイルで
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
。
912;消防士;火災シェフ;
ロード時にどのように分割されるかが問題です。
代わりにpickleを使用してください。 https://docs.python.org/2/library/pickle.html – FredMan
@FredMan pickeは使用できません。それがあればそれをしただろう。 – noname292123
私たちのために保存されたファイルの内容を猫のように(または他の方法で)表示して、あなたの得点がどういうものか、またはあなたが読み込み機能を使っているかを説明してください。 – FredMan