все Python 3configparserпонятие
configparser.RawConfigParser
парсеры
Устаревший базовый вариант ConfigParser без интерполяции: знак % в значениях читается как есть, без подстановок.
Синтаксис
parser = configparser.RawConfigParser(defaults=None, dict_type=dict, allow_no_value=False)
Его берут ради значений вроде '50%' или паролей с %, но у него есть ловушка: set() не проверяет тип, и число 5 так и остаётся числом, а не строкой, как при чтении из файла. Документация советует вместо него ConfigParser(interpolation=None): подстановок тоже нет, а проверка «только строки» сохраняется.
Примеры
import configparser
raw = configparser.RawConfigParser()
raw.read_string("[db]\nrate = 50%\n")
print(raw.get("db", "rate")) # → 50%
raw.set("db", "port", 5432) # ConfigParser ответил бы TypeError
print(type(raw.get("db", "port")).__name__) # → int — тип не тот, что у прочитанного
import configparser
cfg = configparser.ConfigParser(interpolation=None)
cfg.read_string("[db]\nrate = 50%\n")
print(cfg.get("db", "rate")) # → 50%
try:
cfg.set("db", "port", 5432)
except TypeError as e:
print(e) # → option values must be strings
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности