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を使用してファイルを解析した場合、 の値は引き続き 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 に答える