все Python 3codecsфункция
codecs.lookup()
реестр кодеков
Находит кодек по имени и возвращает CodecInfo с его функциями и классами. Заодно приводит псевдоним к каноническому имени: 'UTF8' → 'utf-8', 'latin-1' → 'iso8859-1'.
Синтаксис
info = codecs.lookup(encoding)
Самое полезное применение — проверить имя кодировки из конфига или заголовка заранее: неизвестное имя даёт LookupError сразу, а не на середине файла. Сравнивать кодировки строкой ненадёжно ('utf8', 'UTF-8', 'u8' — одно и то же), а lookup(x).name даёт каноническое имя. Нормализация имени менялась: с 3.15 пробелы превращаются в дефисы, а прочие знаки больше не заменяются подчёркиванием.
Примеры
import codecs
print(codecs.lookup('UTF8').name) # → utf-8
print(codecs.lookup('latin-1').name) # → iso8859-1
print(codecs.lookup('u8').name == codecs.lookup('utf-8').name) # → True
import codecs
try:
codecs.lookup('utf-9')
except LookupError as e:
print(e) # → unknown encoding: utf-9
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности