Я хочу измерить время выполнения внешней программы, выход которой используется моим скриптом Python.Время внешней программы, выход которой обрабатывается Python
Вызов extprogram
программа, которая производится вывод, на данный момент я сделать что-то вроде:
import time
import subprocess
def process_output(line):
...
...
return processed_data
all_processed_data = []
ts = time.time()
p = subprocess.Popen("extprogram", stdout=subprocess.PIPE)
for line in p.stdout:
all_processed_data.append(process_output(line))
te = time.time()
elapsed_time = te - ts
Это не работает как задумано, потому что я измерения время исполнения extprogram
плюс время необходимых для обработки его продукции.
extprogram
производит большой объем данных, поэтому я хотел бы «потопить» его вывод в моей программе Python, используя цикл, который я делаю сейчас. Как я могу оценить te
, когда extprogram
прекращает работу, а не ждет, пока все выходные данные будут обработаны?
Если вы используете Linux, есть команда 'time'. – Samizdis
как бы вы это использовали в моей программе? – lucacerone
Ну, нормальное использование времени - это 'время extprogram args', а выходы времени - stderr. Я предполагаю, что вы могли бы сделать что-то вроде 'p = subprocess.Popen ([" time "," extprogram "], stdout = subprocess.PIPE, stderr = subprocess.PIPE)' – Samizdis