Как изменить текстовый словарь из файла в пригодный для использования словарь - PullRequest
0 голосов
/ 02 апреля 2020

Именно так, мне нужно сделать эту функцию, которая в основном сохраняет имя пользователя игрока в словаре, который затем сохраняется в текстовом файле для повторного использования.

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

Вот мой код:

from ast import eval

def verification(j, d):
    if j in d.keys():
        return d
    else:
        d[j] = [0,0]
    return d

savefile = open("save.txt", "r")
'''d = dict()
for line in savefile:
    (key, val) = line.split(".")
    d[key] = val
print(d)'''
d = savefile.read()
python_dict = literal_eval(d)
savefile.close()


j = input("name? ")
result = verification(j, python_dict)

savefile = open("save.txt", "w")
'''for i in result:
    text = i + "." + str(result[i]) + " \n"
    savefile.write(text)'''
savefile.write(str(result))
savefile.close()

Как видите, я пытался использовать literal_eval из ast , Я также пытался сделать .split (), но это не сработало. Так что я застрял. Любые идеи? Это было бы очень полезно.

Спасибо

1 Ответ

0 голосов
/ 02 апреля 2020

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

Один хороший пример - JSON, который также не Python эксклюзив, поэтому созданная вами база данных может использоваться другими приложениями.

Это можно легко сделать с помощью:

import json

def verification(j, d):
    if j not in d:
        d[j] = [0,0]
    return d

with open("save.txt", "r") as savefile:
    python_dict = json.load(savefile)

j = input("name? ")
result = verification(j, python_dict)

with open("save.txt", "w") as savefile:
    json.dump(result, savefile)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...