使用python脚本运行程序时打印shell的time命令结果

时间:2019-07-06 19:38:04

标签: python linux shell time

我试图多次使用python运行程序并将输出写入文件中。我正在执行以下简单代码进行测试,其中 clwb 是已编译的程序文件:

#!/usr/bin/env python3

from subprocess import time, call,DEVNULL,STDOUT,check_output,CalledProcessError
import shlex

with open("results/output.csv", 'w') as csvfile:

    command_to_execute="time ./clwb"
    call(shlex.split(command_to_execute),stdout=DEVNULL,stderr=STDOUT)
    result=check_output(shlex.split(command_to_execute), universal_newlines=True)
    csvfile.write(result+" \n") 

我正在lunux中使用python3命令执行此python程序。但是,在文件中,我仅获得程序本身的输出,而没有得到 time 命令的结果,如果直接从外壳执行该命令,则在程序输出的末尾将输出某些内容像这样:

real    0m0.813s
user    0m1.140s
sys     0m0.056s

这个结果对我来说是最重要的,因为我正在尝试评估流程本身的执行时间。

我什至都不是python的初学者,这是我之前处理过的唯一代码,所以我不知道为什么我看不到 time 该文件中的命令,我认为这应该是可行的,尤其是如何解决此问题。

更新:通过修改以下行来解决

result=check_output(shlex.split(command_to_execute), stderr=STDOUT, universal_newlines=True) 

0 个答案:

没有答案