Python Glossary English

все 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Сообщить о неточности