Python Glossary English

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