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

Значения ключей DEFAULT модуля configparser в Python

Значения ключей по умолчанию файла конфигурации

Материал построен на примере INI файла, который был создан в обзорном материале модуля configparser

Как и в словаре, для значений, которых может не быть в INI-файле можно использовать метод словаря dict.get() для предоставления запасных значений:

>>> import configparser
>>> config = configparser.ConfigParser()
>>> config('DEFAULT').get('Port')
>>> config('DEFAULT').get('Port', '50022')
# '50022'
>>> config['topsecret.server.com'].get('CompressionLevel')
# '9'
>>> config['topsecret.server.com'].get('Cipher', '3des-cbc')
# '3des-cbc'

Обратите внимание, что значения секции по умолчанию DEFAULT имеют приоритет над запасными значениями. Например, в примере разбираемого файла ключ CompressionLevel был указан только в разделе DEFAULT. Если попытаться получить его из раздела topsecret.server.com, то всегда будем получать значение по умолчанию, даже если мы укажем запасной вариант:

>>> config['topsecret.server.com'].get('CompressionLevel', '3')
# '9'

Еще одна вещь, о которой следует помнить, это то, что метод config.get() синтаксического анализатора configparser.ConfigParser() предоставляет пользовательский, более сложный интерфейс, поддерживаемый для обратной совместимости. При использовании этого метода запасное значение может быть предоставлено через ключевой fallback:

>>> config.get('bitbucket.org', 'monster',
...            fallback='No such things as monsters')
# 'No such things as monsters'

Один и тот же аргумент fallback можно использовать с методами config.getint(), config.getfloat() и config.getboolean(), например:

>>> 'BatchMode' in config['topsecret.server.com']
# False
>>> config['topsecret.server.com'].getboolean('BatchMode', fallback=True)
# True

# добавим значение в секцию `DEFAULT`
>>> config['DEFAULT']['BatchMode'] = 'no'

# Приоритет секции `DEFAULT` перед запасными значениями
>>> config['topsecret.server.com'].getboolean('BatchMode', fallback=True)
# False