Как редактировать словарь из запущенного файла python? - PullRequest
0 голосов
/ 29 марта 2020

Я новичок, и у меня есть программа, и я пытался редактировать словарь из пользовательского ввода в файл. Вот что у меня есть:

def main():
    dataInfo = {"data1":"12345", "data2":"abc123"}

    addInfo = input(":")
    addInfoValue = input(":")
    dataInfo[addInfo] = addInfoValue

    wantedInfo = input(":")

    try:
        if dataInfo[wantedInfo]:
            print(dataInfo[wantedInfo])
    except KeyError:
        exit()

main()

Я сделал это, но всякий раз, когда я перезапускаю программу, материал, который я добавляю в словарь, удаляется.

Мне было интересно, есть ли способ для Данные, записанные в словарь, были сохранены. Я знал, что нужно иметь несколько файлов, но не уверен, как это сделать.

Это не точный формат файла и прочее между прочим. Только то, с чем у меня проблемы.

Также поможет способ удаления определенных частей словаря.

Спасибо :))

Ответы [ 2 ]

0 голосов
/ 29 марта 2020

При запуске программы переменные сохраняются во временной памяти (т. Е. В ОЗУ). Эта память очищается при перезапуске программы.

, если вы хотите, чтобы содержимое было сохранено, вам нужно каким-то образом сохранить его в постоянном хранилище, текстовом файле или базе данных

здесь пример:

import json

some_dict = {'mykey':'myvalue'}

with open('data.txt', 'w') as file:
  # json.dumps will convert your dict into string
  file.write(json.dumps(some_dict))

# read the data from text file
load_dict = {}
with open('data.txt', 'r') as file:
  text_data = file.read()
  # json.loads do the opposite of json.dumps
  load_dict = json.loads(text_data)

Итак, каждый раз, когда пользователь вводит что-то, вы сохраняете dict в текстовый файл и в начале программы загружаете текстовый файл в dict

0 голосов
/ 29 марта 2020

Вы не можете сохранить свой словарь без записи его в файл, потому что он управляется в памяти.

Вы можете записать свой словарь как файл json, и в следующем запуске вы сможете чтобы прочитать уже записанные значения, прочитав файл, обновите его и запишите его снова в тот же файл (или другой):

import json
with open('path/to/file.json', 'w') as f:
    json.dump(dataInfo, f)

, и в следующем запуске вы сможете прочитать его:

with open('path/to_file.json','r') as f:
    dataInfo = json.load(f)

Чтобы удалить ключи для словаря, вы можете использовать pop() fun c:

dataInfo.pop("data1") # data1 key will be removed from the dict
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...