все Python 3codecsфункция
codecs.strict_errors()
обработчики ошибок
Обработчик ошибок 'strict' — умолчание для encode и decode: просто бросает полученное исключение UnicodeEncodeError или UnicodeDecodeError.
Синтаксис
codecs.strict_errors(exception)
Строгий режим — правильное умолчание: лучше упасть, чем молча испортить данные. Ошибка на чтении файла почти всегда значит неверную кодировку (cp1251 вместо utf-8), а не повод ставить errors='ignore'. Напрямую функцию зовут в своём обработчике, чтобы для «не моего» случая вести себя как strict.
Примеры
import codecs
def only_e(err):
if err.object[err.start:err.end] == 'é':
return ('e', err.end)
return codecs.strict_errors(err)
codecs.register_error('only_e', only_e)
print('café'.encode('ascii', 'only_e')) # → b'cafe'
try:
'naïve'.encode('ascii', 'only_e')
except UnicodeEncodeError as e:
print(e.reason) # → ordinal not in range(128)
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности