Python Popen: запись в стандартный вывод и лог-файл одновременно

Я использую Popen для вызова сценария оболочки, который постоянно записывает свои stdout и stderr в файл журнала. Есть ли способ одновременно выводить файл журнала непрерывно (на экран) или, альтернативно, заставить сценарий оболочки одновременно записывать и в файл журнала, и в stdout?

Я в основном хочу сделать что-то подобное в Python:

cat file 2>&1 | tee -a logfile #"cat file" will be replaced with some script

Опять же, этот поток stderr / stdout соединяется с tee, который записывает его и в stdout, и в мой лог-файл.

Я знаю, как записать stdout и stderr в файл журнала на Python. Где я'Я застрял, как скопировать их обратно на экран:

subprocess.Popen("cat file", shell=True, stdout=logfile, stderr=logfile)

Конечно, я мог бы просто сделать что-то подобное, но есть ли способ сделать это без перенаправления дескриптора файла тройника и оболочки ?:

subprocess.Popen("cat file 2>&1 | tee -a logfile", shell=True)

Ответы на вопрос(3)

Ваш ответ на вопрос