Менеджер контекста, временно направляющий stderr в указанный файлоподобный объект.
contextlib.redirect_stderr(target)
target -- Цель, файлоподобный объект, куда следует перенаправить stderr.

Перенаправит sys.stderr в файлоподобный объект.
Может быть полезен для использования со сторонним кодом, который использует только стандартный вывод ошибок stderr.

На заметку
Из-за «глобальной» природы sys.stderr не стоит использовать данный менеджер в коде библиотек и в подавляющем большинстве программ с нитями. Кроме того, он не работает с выводом подпроцессов (см. subprocess).

В примере ниже некая функция do_something() использует sys.stderr для записи в него информации об ошибках, однако при помощи рассматриваемого менеджера, можно перенаправить эту информацию в io.StringIO или в файл на диск:

    # В строку errors.
errors_buffer = io.StringIO()
with redirect_stderr(errors_buffer):
do_something()
errors = errors_buffer.getvalue()

# В файл на диске.
with open('errors.txt', 'w') as errors_file:
with redirect_stderr(errors_file):
do_something()


На заметку
Созданный объект менеджера является реентерабельным. Это означает, что в рамках одного блока with, имеющего такие же вложенные блоки, его можно использовать несколько раз.
Синонимы поиска: contextlib.redirect_stderr, contextlib, redirect_stderr
На заметку
Зарегистрированные пользователи могут получать еженедельный дайджест обновлений на сайте.