找出python脚本完成执行所花费的时间

时间:2011-07-22 07:36:04

标签: python

我在python脚本中有以下代码:

def fun(): 
  #Code here

fun()

我想执行这个脚本,并且还要知道在几分钟内执行需要多长时间。如何确定执行此脚本需要多长时间?一个例子将非常感激。

8 个答案:

答案 0 :(得分:215)

from datetime import datetime
startTime = datetime.now()

#do something

#Python 2: 
print datetime.now() - startTime 

#Python 3: 
print(datetime.now() - startTime)

答案 1 :(得分:109)

您是在Linux或UNIX上从命令行执行脚本吗?在这种情况下,您可以使用

time ./script.py

答案 2 :(得分:51)

import time
start = time.time()

fun()

print 'It took', time.time()-start, 'seconds.'

答案 3 :(得分:14)

我通常使用clock()库中的time()timeclock衡量翻译时间,time衡量系统时间。可以在docs中找到其他警告。

例如,

def fn():
    st = time()
    dostuff()
    print 'fn took %.2f seconds' % (time() - st)

或者,您可以使用timeit。我经常使用time方法,因为我可以快速地使用timeit方法,但如果你计算一段可分离的代码,def test(): "Stupid test function" L = [] for i in range(100): L.append(i) if __name__=='__main__': from timeit import Timer t = Timer("test()", "from __main__ import test") print t.timeit() 会派上用场。

来自timeit docs

timedelta

然后转换为分钟,您可以简单地除以60.如果您希望脚本运行时格式易于阅读,无论是秒还是几天,您都可以转换为strruntime = time() - st print 'runtime:', timedelta(seconds=runtime) 它:

[D day[s], ][H]H:MM:SS[.UUUUUU]

并打印出{{1}}形式的内容。您可以查看timedelta docs

最后,如果你真正想要的是分析你的代码,那么Python也可以提供profile library

答案 4 :(得分:11)

import time 

startTime = time.time()
# Your code here !
print ('The script took {0} second !'.format(time.time() - startTime))

以前的代码对我来说没问题!

答案 5 :(得分:10)

使用timeit模块。这很容易。运行你的example.py文件使其在Python Shell中处于活动状态,你现在应该能够在shell中调用你的函数。尝试一下检查它是否有效

>>>fun(input)
output

好,有效,现在导入timeit并设置一个计时器

>>>import timeit
>>>t = timeit.Timer('example.fun(input)','import example')
>>>

现在我们设置了计时器,我们可以看到需要多长时间

>>>t.timeit(number=1)
some number here

我们走了,它会告诉你执行该功能需要多少秒(或更少)。如果它是一个简单的函数,那么你可以将它增加到t.timeit(数字= 1000)(或任何数字!),然后将答案除以数字以得到平均值。

我希望这会有所帮助。

答案 6 :(得分:10)

import sys
import timeit

start = timeit.default_timer()

#do some nice things...

stop = timeit.default_timer()
total_time = stop - start

# output running time in a nice format.
mins, secs = divmod(total_time, 60)
hours, mins = divmod(mins, 60)

sys.stdout.write("Total running time: %d:%d:%d.\n" % (hours, mins, secs))

答案 7 :(得分:0)

使用时间和日期时间包。

如果有人要执行此脚本,并找出执行几分钟所需的时间

import time
from time import strftime
from datetime import datetime 
from time import gmtime

def start_time_():    
    #import time
    start_time = time.time()
    return(start_time)

def end_time_():
    #import time
    end_time = time.time()
    return(end_time)

def Execution_time(start_time_,end_time_):
   #import time
   #from time import strftime
   #from datetime import datetime 
   #from time import gmtime
   return(strftime("%H:%M:%S",gmtime(int('{:.0f}'.format(float(str((end_time-start_time))))))))

start_time = start_time_()
# your code here #
[i for i in range(0,100000000)]
# your code here #
end_time = end_time_()
print("Execution_time is :", Execution_time(start_time,end_time))

上面的代码对我有用。我希望这会有所帮助。