如何通过子进程模块执行bash命令时间而不是/ usr / bin / time?

时间:2011-04-23 17:47:30

标签: python subprocess

我正在尝试创建一个小脚本,为我做一些基准测试。我正在使用subprocess.Popen来执行time命令。代码示例:

import subprocess
import shlex

command = shlex.split("time thing_im_benchmarking")
p = subprocess.Popen(command)
p.wait()

我得到的输出是

  

2.58user 0.04system 0:02.83elapsed 92%CPU(0avgtext + 0avgdata 11568maxresident)k   0输入+ 0输出(0major + 791minor)pagefaults 0swaps

我真正想要的是

real    0m3.048s
user    0m2.784s
sys 0m0.040s

如何让Popen执行内置的bash命令?

2 个答案:

答案 0 :(得分:3)

shell=True传递给subprocess.Popen()

答案 1 :(得分:0)

我知道这有点晚了,但是为时间程序获取标准化输出的方法是使用标志-p。这将根据POSIX 2标准为您提供时间输出。当我尝试使用自动收集它们的程序来评估我的时间时,这对我帮助很大。