Есть ли простой способ переименовать раздел в файле конфигурации с помощью ConfigParser в python? Я бы предпочел не удалять раздел и создавать его заново, но сейчас это мой единственный ответ.
Переименуйте раздел config.ini, используя ConfigParser в python
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
Спасибо. Я реализовал удаление разделов, которые хотел переименовать, а затем воссоздал их. Теперь моя проблема в том, что они полностью выходят из строя. Как парсер добавляет новые разделы? Это в начало файла или в конец?
- person Falmarri; 11.08.2010
поскольку базовым типом для переменной _sections является dict, вы не можете получить гарантированный порядок элементов в разделе. Вам нужно будет переопределить много класса ConfigParser. Некоторые альтернативы обсуждаются здесь wiki.python.org/moin/ConfigParserShootout.
- person iondiode; 11.08.2010