2016-08-10 3 views
0

Я новичок в программировании на Python,Как добавить «тройник» функциональность «subprocess.call» в питона

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

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

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

+0

Это цитата из документации? или ваш собственный источник? – uphill

+0

его из моего собственного источника –

ответ

0

Я предполагаю, что 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) 
+0

'output_file = open (log.txt", "wb") proc = subprocess.call ([(app_path + exe_file), (путь + config_file)]) result_string = subprocess.check_output ([ 'эхо', 'привет'], оболочки = True) печати (result_string) output_file.write (result_string) ' После добавления этого кода, возможность печати эха на консоль. Но не выход хранится в output_file. –

+0

Читать документацию: https://docs.python.org/2/library/subprocess.html#subprocess.check_output и попытайтесь понять код. – uphill