Переименуйте раздел config.ini, используя ConfigParser в python

Есть ли простой способ переименовать раздел в файле конфигурации с помощью ConfigParser в python? Я бы предпочел не удалять раздел и создавать его заново, но сейчас это мой единственный ответ.


person Falmarri    schedule 10.08.2010    source источник
comment
Связано: stackoverflow.com/questions/15069127/ Другой не является полностью дубликатом, так как он не дает ограничения на удаление/восстановление, но для всех, кто попадет сюда, он объясняет, как это сделать таким образом.   -  person jpmc26    schedule 21.12.2014


Ответы (1)


Нет. Встроенный ConfigParser хранит разделы как _sections, что является словарем. Поскольку это python, вы можете получить доступ к этой переменной, чтобы сделать простую копию. (config._sections[new_name] = config._sections[old_name]; config._sections.pop(old_name)

Но ConfigParser может измениться позднее, и это нарушит вашу реализацию.

Поэтому я не рекомендую этого делать, в качестве альтернативы вы можете создать подкласс ConfigParser и реализовать delete_section или изменить способ хранения параметров.

person iondiode    schedule 10.08.2010
comment
Спасибо. Я реализовал удаление разделов, которые хотел переименовать, а затем воссоздал их. Теперь моя проблема в том, что они полностью выходят из строя. Как парсер добавляет новые разделы? Это в начало файла или в конец? - person Falmarri; 11.08.2010
comment
поскольку базовым типом для переменной _sections является dict, вы не можете получить гарантированный порядок элементов в разделе. Вам нужно будет переопределить много класса ConfigParser. Некоторые альтернативы обсуждаются здесь wiki.python.org/moin/ConfigParserShootout. - person iondiode; 11.08.2010