在python脚本中处理time命令的输出

时间:2012-02-07 18:25:01

标签: python time

我正在尝试编写一个python脚本来对几段代码进行基准测试。问题是当脚本运行时,命令id的输出与我得到的不同,我直接在bash提示符下运行它。

以下是python脚本的代码

import subprocess
import re
import os
app = os.getcwd() + "/" + "myapp"
testPopen = subprocess.Popen(args=['/usr/bin/time',app],
    stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=False) 
testPopen.wait()

以上是上述代码的输出

    real        1.0
    user        0.8
    sys         0.0

1 个答案:

答案 0 :(得分:2)

当您从bash提示符运行time myapp时,您正在使用bash's time command。 (键入help time以查看bash将其理解为bash命令。)

运行python脚本时,您使用的是/usr/bin/time different program。 (键入man timewhich time以查看该时间也是一个程序。多么令人困惑!)

要使python脚本使用bash time命令:

import shlex
testPopen = subprocess.Popen(shlex.split('bash -c "time {a}"'.format(a = app)),
    stdout=subprocess.PIPE,stderr=subprocess.PIPE, shell=False) 
out,err = testPopen.communicate()
print(err)