我正在尝试用Python制作配置阅读器。配置具有以下结构:
@section:
property = 'value'
end
@section2:
property2 = 'value'
end
使用两个函数管理配置:
getValue(file, section, property)
setValue(file, section, property, newvalue)
但我不知道怎么做解析器。帮助PLZ:\
答案 0 :(得分:0)
这很有趣。这应该完美。我不确定是否要删除你的价值旁边的单引号,但我决定把它们拿出来以保证输出的清洁。
with open('configfile.cfg') as f:
data = f.readlines()
config = {}
current_section = None
for line in data:
line = line.strip()
if line == 'end' or not line:
continue
if line.startswith('@'):
current_section = line[1:-1]
config[current_section] = {}
else:
key, value = line.split('=')
config[current_section][key.strip()] = value.strip().strip("'")
print(config)
为了将来参考,如果您提供一小部分实际数据然后描述数据,而不是给出类型名称,那么它将更容易提供帮助。例如,我将其用作配置文件:
@section:
red = '3three'
end
@section2:
blue = '4four'
green = '5five'
end
并且这里是该配置文件的输出字典:
{'section': {'red': '3three'}, 'section2': {'blue': '4four', 'green': '5five'}}