все Python 3codecsфункция
codecs.ignore_errors()
обработчики ошибок
Обработчик ошибок 'ignore': выбрасывает символы и байты, которые не удалось закодировать или декодировать, и продолжает работу.
Синтаксис
codecs.ignore_errors(exception)
Самый опасный из обработчиков: данные теряются бесследно, и по результату не понять, что что-то пропало. Если файл в cp1251 прочитать как utf-8 с errors='ignore', кириллица исчезнет целиком, а программа «успешно» отработает. Для диагностики лучше 'replace' или 'backslashreplace' — они хотя бы оставляют след.
Примеры
data = 'Привет, world'.encode('cp1251')
print(data.decode('utf-8', 'ignore')) # → , world
print(data.decode('cp1251')) # → Привет, world
import codecs
try:
'é'.encode('ascii')
except UnicodeEncodeError as err:
print(codecs.ignore_errors(err)) # → ('', 1)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности