0

让这是具有更多相似词典的 .ini 文件的内容

[section]
cmd_list = {'gamess': "416.gamess/exe/gamess",
            'sjeng': '458.sjeng/exe/sjeng',
            'soplex': '450.soplex/exe/soplex',
            'astar': '473.astar/exe/astar',
           }             
...

现在在我的主文件中并希望动态访问字典:

for r in 'string'
     cmd_list[r][1] #from .ini
     cmd_list[r][0] #from .ini
    ....

怎么做?

4

1 回答 1

1

如果您使用library.ini解析文件,则 value仍然是包含 Python dict 文字的字符串;它还不是字典。ConfigParsercmd_list

使用该ast.literal_eval()函数将其加载到实际字典中:

>>> ast.literal_eval('''\
... {'gamess': "416.gamess/exe/gamess",
...             'sjeng': '458.sjeng/exe/sjeng',
...             'soplex': '450.soplex/exe/soplex',
...             'astar': '473.astar/exe/astar',
...            }''')
{'astar': '473.astar/exe/astar', 'sjeng': '458.sjeng/exe/sjeng', 'gamess': '416.gamess/exe/gamess', 'soplex': '450.soplex/exe/soplex'}
>>> cmd_list = _
>>> cmd_list['sjeng']
'458.sjeng/exe/sjeng'

如果您控制输出格式,您可能需要重新考虑策略;有更好的格式来存储相同的信息。

于 2013-01-30T21:26:08.703 回答