我想测量我的 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
终止而不是等待处理所有输出?