python-3.x 如何根据目录的值指定自定义配置文件

pftdvrlh  于 12个月前  发布在  Python
关注(0)|答案(1)|浏览(126)

我有一个配置文件,其中有一些行用'#'注解掉,看起来像这样。

#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

1hdlvixo

1hdlvixo1#

从技术上讲,你可以通过逐行加载配置文件,检查dict中是否存在value,如果是,则替换值并取消注解:

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(f'{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")


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

相关问题