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