如何获得Python程序执行时间?

How do I get time of a Python program's execution?

我有一个用python编写的命令行程序,需要一段时间才能完成。我想知道跑完全程的确切时间。

我看过timeit模块,但它似乎只针对代码的小片段。我想给整个节目计时。


TP在Python的方式: >

1
2
3
4
import time
start_time = time.time()
main()
print("--- %s seconds ---" % (time.time() - start_time))

这是你的程序以assumes至少十二跑银行。 >

prints: >

1
--- 0.764891862869 seconds ---


他们把这个timing.py模块在我自己的site-packages*就插入目录,我import timing在顶部模块: >

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import atexit
from time import clock

def secondsToStr(t):
    return"%d:%02d:%02d.%03d" % \
        reduce(lambda ll,b : divmod(ll[0],b) + ll[1:],
            [(t*1000,),1000,60,60])

line ="="*40
def log(s, elapsed=None):
    print line
    print secondsToStr(clock()), '-', s
    if elapsed:
        print"Elapsed time:", elapsed
    print line
    print

def endlog():
    end = clock()
    elapsed = end-start
    log("End Program", secondsToStr(elapsed))

def now():
    return secondsToStr(clock())

start = clock()
atexit.register(endlog)
log("Start Program")

我可以从我的程序和呼叫timing.log内如果有重大阶段内的程序我想秀。但只是将包括import timing王子的开始和结束时间,和整体elapsed时代。(原谅我的secondsToStr晦涩的功能,它只是他浮点格式HH:MM秒到编号:ss.sss形态。) >

注:以上3版本的Python代码,在这里他们可以找到这里。 >