python实现记录一段代码执行时间情况
环境:win10,python3.8.10。用python执行一个任务,需要记录何时开始,何时结束,一共运行了多长时间,并用X时X分X秒的样式来展现,记录实现代码。import datetimeimport time
start_time = datetime.datetime.now()
print('XX任务开始时间:'+start_time.strftime("%Y年%m月%d日%H时%M分%S秒"))
time.sleep(360)#模拟执行任务
end_time = datetime.datetime.now()
print('XX任务结束时间:'+end_time.strftime("%Y年%m月%d日%H时%M分%S秒"))
run_time=end_time-start_time
print(run_time)
hours, remainder = divmod(run_time.total_seconds(), 3600)
minutes, seconds = divmod(remainder, 60)
print(f"本次任务运行时间:{int(hours)}小时{int(minutes)}分钟{int(seconds)}秒") 我记得用装饰器更方便,不用重复工作 通用脚本,可以直接调用,也可以当做装饰器使用
import atexit
import time
def timing(func=None):
if func:
# 被当做装饰器使用时
def wrapper(*args, **kwargs):
start_time = time.time()
result = func(*args, **kwargs)
end_time = time.time()
print(f"方法 '{func.__name__}' 的执行时间为: {end_time - start_time} 秒")
return result
return wrapper
else:
# 记录任务开始时间
start_time = time.time()
def __exit():
# 记录任务结束时间
end_time = time.time()
print(f"本次任务 的执行时间为: {end_time - start_time} 秒")
atexit.register(__exit)
# 直接调用时
timing()
time.sleep(2)
# 作为装饰器使用
@timing
def task_as_decorator():
time.sleep(1)
print("任务作为装饰器执行完毕")
task_as_decorator()
这是记录运行时间 cloudflare 发表于 2024-5-15 08:09
我记得用装饰器更方便,不用重复工作
是的,相当于套一个计时函数 我有个简单的计时函数,经常用。
from time import time
start_time = time()
def log_step(step):
print(f"{step}\t累计耗时 {round(time() - start_time,1)} 秒")
for i in range(10000000000):
if i % 10000000 == 0:
log_step(f"计算至 {i} ")
这个好,拿来用用。
装饰器经典场景,大概这种感觉
import time
def timing(fn):
def wrapper(*args,**kwargs):
start=time.time()
fn(*args,**kwargs)
stop=time.time()
print(f'耗时{stop-start}秒')
return
return wrapper
@timing
def test():
print("Hello, World!");
return
test() LightswornSnow 发表于 2024-5-15 19:24
装饰器经典场景,大概这种感觉
import time
def timing(fn):
学习了! cloudflare 发表于 2024-5-15 08:09
我记得用装饰器更方便,不用重复工作
学习了! LightswornSnow 发表于 2024-5-15 19:24
装饰器经典场景,大概这种感觉
import time
def timing(fn):
又学到了一招!
页:
[1]
2