如何自定义由目录值指定的配置文件

问题描述 投票:0回答:1

我有一个配置文件,其中一些行用“#”注释掉,如下所示。

#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
python python-3.x dictionary config
1个回答
0
投票

从技术上讲,您可以通过逐行加载配置文件,检查字典中是否存在值,如果存在则替换值并取消注释来完成此操作:

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")

但我认为更好的方法是使用你的字典作为配置,以防配置文件中缺少参数检查(它应该不那么混乱)。

© www.soinside.com 2019 - 2024. All rights reserved.