Python Glossary English

Python 3.10+Исключенияисключение

EncodingWarning

встроенные исключения

Открытие текстового файла без явной кодировки (полагаясь на локаль).

Синтаксис

raise EncodingWarning

Появилось в Python 3.10 (PEP 597) и по умолчанию молчит: чтобы увидеть его, нужен запуск с -X warn_default_encoding или переменная PYTHONWARNDEFAULTENCODING=1. Смысл предупреждения не в самом факте, а в скрытой переносимости: до Python 3.15 open(path) без encoding берёт кодировку локали (с 3.15 — UTF-8, PEP 686), поэтому файл, прочитанный на Linux как UTF-8, на Windows может уехать в cp1251 и упасть с UnicodeDecodeError. Лечится не перехватом, а явным encoding='utf-8' в каждом открытии текстового файла.

Примеры

try:
    raise EncodingWarning
except EncodingWarning as e:
    print(type(e).__name__)   # → EncodingWarning

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности