【发布时间】:2020-02-07 04:26:09
【问题描述】:
我有一个像这样的config.yml 文件:
# CONFIGURATION FILE
# COMMENT 1 blah
# COMMENT 2 blah blah
# COMMENT 3 blah blah blah
NAME: Fruits
# CONFIGURATION FILE
# COMMENT 4 blah
# COMMENT 5 blah blah
# COMMENT 6 blah blah blah
fruit_list:
- "apple-01:9100"
我想动态修改fruit_list。我想从烧瓶网络表单中附加用户输入的数据。下面是我试过的代码,我只能用这个代码修改和附加一个字符串。
import ruamel.yaml
from ruamel.yaml import YAML
yaml = YAML()
conf_file = pathlib.Path('configs/config.yml')
conf_key = yaml.load(conf_file)
conf_key['Fruits'] = form.bsa.data
conf_key['fruit_list'] = form.fqdn.data + ':9100'
yaml.dump(conf_key, conf_file)
上面的代码只允许我修改/追加一个字符串到fruit_list。此外,它不保留格式。注释被保留,但间距是一团糟,并且不断增加空间。请参阅下面的输出:
# CONFIGURATION FILE
# COMMENT 1 blah
# COMMENT 2 blah blah
# COMMENT 3 blah blah blah
NAME: Fruits
# CONFIGURATION FILE
# COMMENT 4 blah
# COMMENT 5 blah blah
# COMMENT 6 blah blah blah
fruit_list: apple-01:9100
所需的输出如下:
# CONFIGURATION FILE
# COMMENT 1 blah
# COMMENT 2 blah blah
# COMMENT 3 blah blah blah
NAME: Fruits
# CONFIGURATION FILE
# COMMENT 4 blah
# COMMENT 5 blah blah
# COMMENT 6 blah blah blah
fruit_list:
- "apple-01:9100"
- "orange-01:9100"
- "pear-01:9100"
- "grape-01:9100"
我还希望fruit_list 中的附加内容根据用户输入的fruits 数量是动态的。
【问题讨论】:
标签: python yaml ruamel.yaml