【发布时间】:2020-07-14 15:32:14
【问题描述】:
没错,我需要制作这个函数,基本上将玩家的用户名保存在字典中,然后将其保存在文本文件中以再次重复使用。
问题在于重用它我无法将我从文件中获取的 str 获取到字典中。
这是我的代码:
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()
如您所见,我尝试使用来自ast 的literal_eval。我也尝试做一个 .split() 但这行不通。所以我被困住了。有任何想法吗?会有很大帮助的。
谢谢
【问题讨论】:
-
“不起作用”——请提供完整的回溯。一般来说,您应该提供minimal reproducible example,包括重现您的问题所需的最小输入和代码——以及实际问题是什么。
-
考虑改用json
-
@Tomerikoo 我的代码看起来如何?
-
@AryaMcCarthy 好吧,我将密钥及其值保存在由“。”分隔的文件中。会发生什么,当我做一条新线时,它会下降两个。因此会出现错误,因为没有任何东西可以拆分并制成单独的键和值
-
你看过那个链接了吗?这非常简单。就像
json.dump(result, savefile)和python_dict = json.load(savefile)一样简单
标签: python-3.x function file dictionary text