Как проверить существование секции в .ini файле с помощью configparser?

Как проверить существование секции ([Example]) в .ini файле?

Создать её, если не существует.


Ответы (2 шт):

Автор решения: MaxU

Создатели Python рекомендуют использовать EAFP (Easier to Ask for Forgiveness than Permission) идиому.

Пример:

from configparser import DuplicateSectionError

conf = configparser.ConfigParser()
conf.read('test.ini')

try:
    conf.add_section("new_section_name")
except DuplicateSectionError:
    # такая секция уже существует
    pass

PS ту же технику можно использовать, чтобы проверить существует ли определенный ключ в секции - для этого следует использовать DuplicateOptionError exception.

→ Ссылка
Автор решения: vadim vaduxa

Проверить проще через метод has_section, но с ограничением, что нельзя проверить 'DEFAULT' секцию, для нее всегда вернет False

conf.has_section('Example')  # bool
conf.has_section('DEFAULT')  # всегда False
→ Ссылка