我试图多次使用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)