Сообщить об ошибке.

Структура файлов конфигураций и модуль configparser

Файл конфигурации состоит из разделов, каждый из которых возглавляется заголовком [section], за которым следуют записи key/value, разделенные определенным символом. Это может быть символ '=' или ':' по умолчанию.

По умолчанию имена разделов [section] чувствительны к регистру, но ключи key не чувствительны и всегда преобразовываются к нижнему регистру. Начальные и конечные пробелы удаляются из ключей key и значений value. Значения могут быть опущены, в этом случае разделитель ключ/значение также может быть пропущен.

Значения value также могут занимать несколько строк, если они имеют отступ глубже, чем первая строка значения. В зависимости от режима анализатора, пустые строки могут рассматриваться как части многострочных значений или игнорироваться.

Файлы конфигурации могут содержать комментарии с префиксом определенных символов, это '#' и ';' - по умолчанию. Комментарии могут появляться самостоятельно в пустой строке, возможно с отступом.

Примеры записей ключей и значений в секции:

[Section]
key=value
spaces in keys=allowed
spaces in values=allowed as well
spaces around the delimiter = obviously
you can also use : to delimit keys from values

Все значения являются строками:

[Section]
values like this: 1000000
or this: 3.14159265359
are they treated as numbers? : no
integers, floats and booleans are held as: strings
can use the API to get converted values directly: true

Многострочные значения:

[Section]
chorus: I'm a lumberjack, and I'm okay
    I sleep all night and I work all day

Нет значений:

[Section]
key_without_value
empty string value here =

Можно использовать комментарии:

[Section]
# like this
; or this

# By default only in an empty line.
# Inline comments can be harmful because they prevent users
# from using the delimiting characters as parts of values.
# That being said, this can be customized.

Разделы могут быть с отступом:

[SectionOne]
key_without_value
empty string value here =

    [SectionTwo]
        can_values_be_as_well = True
        does_that_mean_anything_special = False
        purpose = formatting for readability
        multiline_values = are
            handled just fine as
            long as they are indented
            deeper than the first line
            of a value
        # Did I mention we can indent comments, too?