Сохранить словарь и сохранить его - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь составить словарь слов. Я хочу сохранить добавленное слово в словаре 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)

Ответы [ 3 ]

0 голосов
/ 08 мая 2018

Если вы хотите, чтобы ваш словарь сохранялся даже после закрытия и открытия программы, я могу порекомендовать два способа сделать это.

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'}
0 голосов
/ 08 мая 2018

Вы можете использовать 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)
0 голосов
/ 08 мая 2018

Вам придется сохранить словарь в файл. Я рекомендую использовать 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...