2017-06-05 4 views
0

私は変数のリストを指定するには、コンフィグパーサを使用していて、これらの変数の値は、より大きなファイルから引っ張られます。同様に、私は、configファイルの変数名にアスタリスク*を使用することはできますか?

callCount.1.cell=2 
callCount.2.cell=10 
callCount.3.cell=12 

のではなく、具体的これらすべての変数をリストアップ、私は番号の代わりに、ワイルドカード文字として「*」を使用することができるだろう:大きなファイル内の変数/ラインすべてがこのようになりこの:

[variablesToPull] 
callCount.*.cell 

私はから値を引っ張っている、と私はいつも離れ変数のある数字がどうなるか分からない大きなファイルの書式を変更することはできません。

編集:私は、私はそれが可能だとは思わないしばらく見た後、すべての私のConfigを解析

答えて

0

を行うにはPython 2.7を使用しています。私は

[variablesToPull] 
callCount 

設定ファイルに必要な変数名のちょうど最初の部分を使用して終了その後、私は、私は(すべての次のコードでは、変数名と値の完全なリストを格納したファイルから辞書を作成していますPythonの2.7のために、それはおそらく、Pythonの3のために動作しますが、いくつかの構文の変更が必要な場合があります)

f = open(variable_names_and_values_file, 'r') 
dict_of_vars= {} 
for line in f: 
    k, v = line.strip().split('=') 
    dict_of_vars[k.strip()] = v.strip() 
f.close() 

は、その後、私はこの辞書に掛けおよび(、callCount.1.cellように引っ張って、特定の変数の新しいリストを作成callCount.2.cell、電気ショック療法...)

new_variables= [] 
for var in partial_variable_names_from_config_file: 
    for data in dict_of_vars: 
     if var in data: 
      new_variables.append(data) 

当初、私は(変数の私のファイルが10000行と同じように持っている)性能低下の恐れのために多くのループを行うにはしたくなかったが、顕著な量で私のスクリプトをスローダウンしているようには見えません。

希望は、これはそこに

誰かを助けます
関連する問題