Материал построен на примере 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
Если необходимо, то можно зарегистрировать свои собственные конвертеры, а также настроить имеющиеся конвертеры данных.