是否有一个命令显示最后“n”个命令运行多长时间?

时间:2014-08-14 14:01:59

标签: python linux performance bash

我正在Linux中运行不同的Python脚本,我想看看这些脚本有多少时间,我想知道在Bash或Python中是否有命令它不依赖于回显或打印到屏幕上多少运行命令所花费的时间。提前谢谢。

例如,Python脚本可能是:

import subprocess

command = ['sudo', '-S', 'iwlist', 'wlan0', 'scan']
output = subprocess.Popen(command, stdout=subprocess.PIPE).stdout.read()
data = []
for cell_item in output.split("Cell"):
    data_item = []
    for line in cell_item.split("\n"):
        if any(item in line for item in ["ESSID", "Quality", "Pairwise"]):
            data_item.append(line.strip())
    if data_item:
        data.append(data_item)
print data

我想要的是在屏幕上看到一些代码输出的最后一行,我想看到那里; "此代码持续16.363秒"

4 个答案:

答案 0 :(得分:3)

只需将time放在任何其他命令或脚本之前,例如:

time sleep 4

给出

real    0m4.003s
user    0m0.000s
sys     0m0.001s

您也可以更改输出的格式,请参阅man time

答案 1 :(得分:2)

我个人使用:

from datetime import datetime

t1 = datetime.now()
bashCommand = "df -h > space.txt"
process = subprocess.Popen(bashCommand.split(), stdout=subprocess.PIPE)
t2 = datetime.now()
total = t2-t1

print total

答案 2 :(得分:1)

因此,根据评论,问题似乎是“我怎么能追溯看我以前的命令花了多长时间?”答案很简单:你做不到。

Python在运行代码时不会自动计时,而import time所做的就是让您自己访问函数来执行计时。如果你想知道事情需要多长时间,你必须在事实之前明确说出来。代码运行后,我想不出任何可以返回的内容并确定运行多长时间。我相信你将不得不再次做你所有的时间,抱歉说。

答案 3 :(得分:1)

使用bash的特殊变量SECONDS:

SECONDS=0
script.py
echo $SECONDS