Я прочитал несколько вопросов о том, как использовать функцию печати для записи в файл путем перенаправления стандартного вывода. Я нахожу это потенциально полезным для ведения журнала (где модуль ведения журнала иногда неудобен), но мне интересно, есть ли способ отправить вывод нескольким адресатам.
В основном предлагаются следующие решения:
- Переназначить стандартный вывод с помощью
sys.stdout=f
#f - это нечто, похожее на файл
- Использование
contextlib.redirect_stdout
Таким образом, каждый раз, когда в коде something
есть print(something)
перенаправлен на f
. Я ищу что-то вроде
redirect_stdout([sys.stdout,f])
, который выводит каждый something
в файл f
и обычный вывод.
Кроме того, каково время вывода на печать (имеется в виду, если есть функция с
несколько операторов печати, когда содержимое сбрасывается на f и stdout, и что, если возникает ошибка?)?
Я провел некоторое расследование, но не смог найти решение, поэтому я думаю, что это выше моих знаний.