2017-06-05 107 views
0

我正在使用Config Parser來指定一個變量列表,然後這些變量的值從一個更大的文件中提取。變量/在較大的文件中的所有行是這樣的:我可以在配置文件變量名稱中使用星號*嗎?

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

而不是專門列出所有這些變量,將我能夠使用「*」作爲通配符代替數量,如這樣的:

[variablesToPull] 
callCount.*.cell 

我不能改變較大的文件,我從拉動值的格式,我總是不知道是分開的變量的數量將是什麼。

編輯:我使用Python 2.7做我所有的配置解析

回答

0

東張西望了一會兒後,我不認爲這是可能的。最後我只使用在配置所需的變量名的第一部分文件

[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行),但它似乎沒有顯着減少我的腳本。

希望這可以幫助那裏的人

相關問題