在python中运行方法时显示运行时间

时间:2017-10-03 08:59:43

标签: python methods ipython

我有一个需要很长时间才能运行的方法。没有迭代可以使用任何进度条,如tqdm。在运行时,我希望它显示一些进度图形所经过的时间(类似于Unix / Linux系统中的软件包安装程序与旋转/或某些图形...)。在以下虚拟代码中

from time import sleep

def longTimetakingmethod():
    sleep(3600)
    showgraphictime()

longTimetakingmethod()

showgraphictime()方法应该显示类似

的内容

Calculating.../ Time elapsed: 00 hrs:15 mins:05 s

有没有一种简单的方法可以实现showgraphictime()

或者它必须是像showrunningupdate(longTimetakingmethod())

这样的包装器
from time import sleep

def longTimetakingmethod():
    sleep(3600)

showrunningupdate(longTimetakingmethod())

2 个答案:

答案 0 :(得分:1)

此库可能对您有用:Beautiful terminal spinners in Python

示例:

from halo import Halo
from time import sleep

def rocket_launch():
    spinner = Halo({'spinner': 'shark'})
    spinner.start()
    for c in range(10, 0, -1):
        spinner.text = 'Launching in {} seconds'.format(c)
        sleep(1)
    spinner.succeed('Rocket launched')

rocket_launch()

答案 1 :(得分:0)

您可以使用Timeit模块来映射该时间和其中一个微调器所用的时间,如@pbacterio所示