保存字典并保留它



我正在尝试制作单词词典。我想将添加的单词保存到字典中word以便当我再次运行它时,我可以查找添加的单词。

#A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS
word = {"ikkje": "ikke"}
#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") 
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")
#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(self,var):
word[nynorsk] = bokmål
add_word(nynorsk, bokmål)
print(word)

您必须将字典保存到文件中。我建议为此使用 JSON。

import json
#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(nynorsk_word, bokmål_word):
word[nynorsk_word] = bokmål_word
#A DICTIONARY THAT CONTAINS ALL THE TRANSLATED WORDS
try:
# Try to load the word JSON file.
word = json.load(open("word.json"))
except FileNotFoundError:
# Initialize it, if the file does not exist.
word = {"ikkje": "ikke"}
#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:")
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")
add_word(nynorsk, bokmål)
# Write the word JSON file.
with open("word.json", "w") as wordfile:
json.dump(word, wordfile)
print(word)

您可以使用 pickle 将文件存储在本地磁盘上。它用于序列化和反序列化

temp = get_list_from_pickle('alerted_dict.pickle')
word = {"ikkje": "ikke"}
#TAKES INPUT FROM USER; THE WORD IN THE FIRST "LANGUAGE"
nynorsk = input("WRITE THE 'NYNORSKE' WORD NOW:") 
bokmål = input("WRITE THE SAME WORD IN 'BOKMÅL' NOW:")
#A FUNCTION THAT ADDS A NEW WORD WITH TRANSLATION TO THE DICTIONARY "word"
def add_word(self,var):
word[nynorsk] = bokmål
add_word(nynorsk, bokmål)
with open('alerted_dict.pickle', 'wb') as fp:
pickle.dump(temp, fp)
print(word)
def get_list_from_pickle(filename):
try:
with open(filename, 'rb') as fp:
return pickle.load(fp)
except FileNotFoundError:
with open(filename, 'wb') as fp:
pickle.dump([], fp)

如果您希望字典即使在关闭并打开程序后仍然存在,我可能会推荐两种方法来执行此操作。

1-您可以使用shelve模块。此模块可帮助您将变量(甚至是文件对象)存储到文件中,然后您可以读取该文件。

import shelve
shelf = shelve.open('store')
shelf['ikkje'] = 'ikke'

关闭并再次打开文件

import shelve
shelf = shelve.open('store')
print(shelf['ikkje'])
# ikke

2-您可以使用pprint.pformat将变量排列成有意义的格式并将其保存到.py文件中。之后只需导入此文件即可开始使用。请注意,只能将此方法用于特定对象,而不能用于文件等复杂对象。

import pprint
words = {'ikkje': 'ikke'}
with open('store.py', 'w') as store:
store.write('words = ' + pprint.pformat)

关闭并再次打开文件

import store
print(store.words)
# {'ikkje': 'ikke'}

最新更新