Python:酸洗。装载()只返回fi的第一个值

2024-05-17 05:05:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个非常基本的程序,它存储从英语到法语的单词词典,例如:

我将所有这些值存储在一个文件中,我使用pickle函数附加和读取这些值。在

问题是当我使用酸洗。装载要读取文件然后打印它,只返回第一个值。在

我看不出我的错误在哪里,我到处找都没有得到答案。 提前谢谢。在

import pickle
import os

clear=lambda:os.system("cls")

def pause():
    input("Press ENTER to continue.")

def print_dictionary(dct):
    print("Dictionary (English / French)")
    for wordenglish, wordfrench in dct.items():
        print("{} : {}".format(wordenglish, wordfrench))

dictionary={}
for loop in range(3):
    wordEnglish=input("Enter the word in English : ")
    wordFrench=input("Enter the word in French : ")
    pause()
    clear()
    print("Saving ...")
    dictionary[wordEnglish]=wordFrench
    with open("data","ab") as file:
        pickler=pickle.Pickler(file)
        pickler.dump(dictionary)
    print("Saved !")
pause()
with open("data","rb") as file:
    unpickler=pickle.Unpickler(file)
    dictionary_get=unpickler.load()
print_dictionary(dictionary_get)
pause()

例如,如果我输入“Fire”,“Feu”/“Water”,“Eau”/“Mud”,“Boue”,我得到的唯一值就是“Fire”,“Feu”。在


Tags: 文件inimportinputdictionaryenglishosdef