Python 如何正确使用时间

Python 如何正确使用时间,python,Python,我正在尝试计时一个正在运行的函数。但我需要知道这需要多少小时/分/秒。我正在使用time.time(),但我不理解输出。如何根据一个函数需要多少小时/分/秒来转换此输出?或者,如果有另一个合适的图书馆 import time starttime = time.time() x=0 for i in range(100000): x+=i endtime = time.time() print('Job took: ', endtime-starttime) time.time(): 函

我正在尝试计时一个正在运行的函数。但我需要知道这需要多少小时/分/秒。我正在使用time.time(),但我不理解输出。如何根据一个函数需要多少小时/分/秒来转换此输出?或者,如果有另一个合适的图书馆

import time
starttime = time.time()
x=0
for i in range(100000):
    x+=i
endtime = time.time()
print('Job took: ', endtime-starttime)
time.time()

函数的作用是:返回从历元开始经过的秒数

对于Unix系统,1970年1月1日,UTC的00:00:00是历元(点 时间从哪里开始)


这可能不是您想要的

我建议使用
time.perf\u counter
而不是
time.time
,并使用
timedelta
格式化单位:

>>> from datetime import timedelta
>>> import time
>>> starttime = time.perf_counter()
>>> x=0
>>> for i in range(100000):
...     x+=i
...
>>> duration = timedelta(seconds=time.perf_counter()-starttime)
>>> print('Job took: ', duration)
Job took:  0:00:00.015017
使用
perf_counter
的好处是,它不会受到测量时时区或系统时钟变化等奇怪事情的影响,并且它的分辨率保证尽可能高(如果您对非常快的事件计时,这可能很重要)

在任何一种情况下,返回值都是以秒为单位测量的,但是您需要知道它来自哪个函数,以便知道浮点值对应于什么
timedelta
是一种比纯浮点IMO更好的表示持续时间的方法,因为它包含单位。

time.time()
给出启动进程的秒数。因此,
endtime starttime
提供循环开始和结束之间的秒数。
在python中停止时间的更好方法是使用:


没有使用的原因是什么?time()函数返回自1970年1月1日00:00:00以来经过的秒数,请参见。它返回自UNIX epochThanks启动以来经过的秒数。就像我想要的那样。
>>> from datetime import timedelta
>>> import time
>>> starttime = time.perf_counter()
>>> x=0
>>> for i in range(100000):
...     x+=i
...
>>> duration = timedelta(seconds=time.perf_counter()-starttime)
>>> print('Job took: ', duration)
Job took:  0:00:00.015017
import datetime
starttime = datetime.datetime.now()
x=0
for i in range(100000):
    x+=i
endtime = datetime.datetime.now()
diff = endtime - starttime
print('Job took: ', diff.days, diff.seconds, diff.microseconds)