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

Типы данных поддерживаемые ConfigParser

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

Класс парсера INI-файлов ConfigParser() не предполагает типы данных значений в файлах конфигурации и всегда сохраняет их внутри как строки. Это означает, что если нужны другие типы данных, то необходимо конвертировать их самостоятельно или при помощи предоставляемых методов config.getint() и config.getfloat():

>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.read('example.ini')
# самостоятельно
>>> int(config['topsecret.server.com']['Port'])
# 50022
>>> float(config['DEFAULT']['CompressionLevel'])
#  9.0

# при помощи методов
>>> config['topsecret.server.com'].getint('Port')
# 50022

# можно так
>>> config.getfloat('DEFAULT', 'CompressionLevel')
#  9.0

Для логических значений простая конвертация в тип bool не будет иметь успеха, так как простая передача значения в функцию bool() не принесет пользы, поскольку передача строки 'False' выдаст значение True. Для этих целей класс парсера конфигурации configparser.ConfigParser() предоставляет метод config.getboolean().

Этот метод нечувствителен к регистру и распознает логические значения такие как:

  • 'yes'/'no',
  • 'on'/'off',
  • 'true'/'false',
  • '1'/'0'.

Например:

>>> import configparser
>>> config = configparser.ConfigParser()
>>> config.read('example.ini')
>>> config['topsecret.server.com'].getboolean('ForwardX11')
# True

# или
>>> config.getboolean('DEFAULT', 'Compression')
# True

Если необходимо, то можно зарегистрировать свои собственные конвертеры, а также настроить имеющиеся конвертеры данных.