我有一个配置文件,其中一些行用“#”注释掉,如下所示。
#year=1889
#model=foo
#size=small
working=y
现在我从代码中的另一个位置获取一些变量,这些变量存储在字典中。配置中出现的值应进行注释,并在必要时调整为其值
mydict = {
"model":"bar", # <- uncommented+adjusted
"size":"small", # <- uncommented
"working":"y", # <- untouched
"newValue":"new" # <- not added
}
编辑后,文件应如下所示:
#year=1889
model=bar
size=small
working=y
从技术上讲,您可以通过逐行加载配置文件,检查字典中是否存在值,如果存在则替换值并取消注释来完成此操作:
new_lines =[]
with open(config_path, "r") as file:
for line in file:
name = line.split('=')[0].replace('#', '')
if name in my_dict:
new_lines.append('{name}={my_dict[name]}')
else:
new_lines.append(line)
然后你可以将其写入配置文件:
with open(config_path, "w") as file:
for line in new_lines:
file.write(line + "\n")
但我认为更好的方法是使用你的字典作为配置,以防配置文件中缺少参数检查(它应该不那么混乱)。