如何将文本文件字典导入python字典

时间:2017-12-26 17:32:08

标签: python file dictionary external

我正在创建一个锦标赛评分系统应用程序。 此应用程序有许多部分,例如参与者,团队,活动和奖励积分。 现在我正在研究团队部分。我能够创建一些允许用户创建团队的东西。 代码看起来像这样。

teamname = input("Team Name: ").title()
First_member = input("First Member Full Name: ").title()
if any(i.isdigit() for i in First_member):
print("Invalid Entry")
else:

每个团队中只能有5名成员。 这就是数据的保存方式

combine = '\''+teamname+'\' : \''+First_member+'\', \''+Second_member+'\', 
\''+Third_member+'\',  \''+Forth_member+'\',  \''+Fifth_member+'\'',                                  

myfile = open("teams.txt", "a+")
myfile.writelines(combine)
myfile.writelines('\n')
myfile.close()

现在如果我想删除一个团队,我该怎么做?

道歉,如果你觉得我在浪费你的时间,但仍然要感谢你的到来。 如果您想查看所有内容,请查看此链接

https://repl.it/@DaxitMahendra/pythoncode>

2 个答案:

答案 0 :(得分:0)

如果手中有文本文件创建,那么您应该只有正确的YAML格式的文件。您的格式与YAML非常相似。

一旦你有了YAML,你可以使用PyYAML:https://pyyaml.org/wiki/PyYAMLDocumentation

这个回答:YAML parsing and Python?有格式的例子以及如何解析。

答案 1 :(得分:0)

你必须快速修复,请将你的“组合”变量格式更改为有效的“dict”格式,然后你可以使用“ast”模块,这里是一个例子

#proxy items
teamname,First_member,Second_member,Third_member,Forth_member,Fifth_member = [str(temp_name).zfill(3) for temp_name in range(6)]

#add "{" and "}" to start/end and add your values into a list "key":["value1", "value2",...]
combine = '{\''+teamname+'\' : [\''+First_member+'\', \''+Second_member+'\', \''+Third_member+'\',  \''+Forth_member+'\',  \''+Fifth_member+'\']}'

import ast
dict = ast.literal_eval(combine)
print dict.keys(), type(dict)
>>['000'] <type 'dict'>

对于你的情况,

#change the "combine" variable
combine = '{\''+teamname+'\' : [\''+First_member+'\', \''+Second_member+'\', \''+Third_member+'\',  \''+Forth_member+'\',  \''+Fifth_member+'\']}'