Как добавить функциональность '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)