Повторяющийся раздел при добавлении новой опции configparser - PullRequest
0 голосов
/ 11 сентября 2018

Когда я добавляю новую опцию в раздел и записываю файл в конфигурацию, он, кажется, всегда дублирует раздел и добавляет новую с новой опцией.

В идеале я хотел бы избежать этого итолько один раздел, как мне этого добиться?

Пример вхождения

config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()

config.read("file.cfg")
config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "a")
config.write(cfile)
cfile.close()

Когда вы открываете файл file.cfg, он дважды устанавливает Install один с apt_installer, а другой с обоимиapt_installer и deb_installer.Любой совет, который кто-нибудь может дать, я буду благодарен.

1 Ответ

0 голосов
/ 11 сентября 2018

Мне кажется, проблема в том, что вы открываете свой файл в режиме append.Попробуйте изменить строку:

cfile = open("file.cfg", "a")

с

cfile = open("file.cfg", "w")

Также вы должны добавить следующие строки:

import configparser

config = configparser.ConfigParser()

вверху, чтобы сделать ваш примерза работой.Итак, в конце ваш пример должен выглядеть так:

import configparser

config = configparser.ConfigParser()
config.add_section("Install")
config.set("Install", "apt_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()

r = config.read("file.cfg")

config.set("Install", "deb_installer", "True")
cfile = open("file.cfg", "w")
config.write(cfile)
cfile.close()
...