Как добавить функциональность 'tee' в 'subprocess.call' в python

Я новичок в программировании на Python,

proc = subprocess.call([(app_path + exe_file),(app_path + config_file)],stdout = output_File)

Выше subprocess.call берется исполняемый bin-файл и соответствующие конфигурации по указанному пути и работает нормально. Но это не дает никакой информации о трассировке на консоли вывода (Ubuntu).

Мне нужно добавить функциональность, значит, он должен показывать вывод на консоли, а также сохранять вывод в output_File.

1 ответ

Я предполагаю output_file это файловый объект, открытый open('...', 'w'), Вам нужен объект потока, который отправляет ваш write вызов нескольких выходных потоков. Аргументы stdin и stdout должны быть реальными файлами с fileno() функция.

Я думаю, что это довольно просто, если вы вызываете функцию, подождите, а затем запишите ее:

import subprocess
import sys

file_out = open('mylog.txt', 'wb')

result_string = subprocess.check_output(['echo', 'hello'], shell=True)
print(result_string)
file_out.write(result_string)
Другие вопросы по тегам