Запись в стандартный поток ошибок

Python:
Запись в стандартный поток ошибок

Как это делать:

Для записи в stderr на Python:

import sys

print("Это обычное сообщение.")
sys.stderr.write("Это сообщение об ошибке.\n")

Пример вывода:

Это обычное сообщение.
Это сообщение об ошибке.

Обратите внимание, что, хотя print() по умолчанию добавляет новую строку, sys.stderr.write() этого не делает—вам нужно включить \n, чтобы начать новую строку.

Глубокое погружение

Исторически стандартные потоки были введены в Unix. Их три: стандартный ввод (stdin), стандартный вывод (stdout) и стандартная ошибка (stderr). В Python модуль sys предоставляет доступ к этим потокам. Хотя stdout обычно используется для основного вывода программы, stderr зарезервирован для сообщений об ошибках и диагностики.

Альтернативы sys.stderr.write() включают использование print() с аргументом file:

print("Это сообщение об ошибке.", file=sys.stderr)

Это работает подобным образом, но использует дружественные к пользователю функции print(). Что касается внутренних механизмов, оба метода в итоге делают системные вызовы записи в соответствующий поток.

Смотрите также