我可以在配置文件变量名中使用星号 * 吗?
Can I use asterisk * in config file variable name?
我正在使用 Config Parser 指定变量列表,然后从更大的文件中提取这些变量的值。大文件中的 variables/lines 都是这样的:
callCount.1.cell=2
callCount.2.cell=10
callCount.3.cell=12
我可以使用“*”作为通配符代替数字,而不是具体列出所有这些变量,如下所示:
[variablesToPull]
callCount.*.cell
我无法更改从中提取值的较大文件的格式,而且我并不总是知道变量之外的数字是什么。
编辑:我正在使用 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 行),但它似乎并没有显着减慢我的脚本。
希望这对外面的人有帮助
我正在使用 Config Parser 指定变量列表,然后从更大的文件中提取这些变量的值。大文件中的 variables/lines 都是这样的:
callCount.1.cell=2
callCount.2.cell=10
callCount.3.cell=12
我可以使用“*”作为通配符代替数字,而不是具体列出所有这些变量,如下所示:
[variablesToPull]
callCount.*.cell
我无法更改从中提取值的较大文件的格式,而且我并不总是知道变量之外的数字是什么。
编辑:我正在使用 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 行),但它似乎并没有显着减慢我的脚本。
希望这对外面的人有帮助