У меня есть такой файл 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
ввел пользователь.