吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1044|回复: 11
收起左侧

[Python 原创] python实现记录一段代码执行时间情况

[复制链接]
cenoser795 发表于 2024-5-14 21:59
环境:win10,python3.8.10。用python执行一个任务,需要记录何时开始,何时结束,一共运行了多长时间,并用X时X分X秒的样式来展现,记录实现代码。
[Python] 纯文本查看 复制代码
import datetime
import 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)}秒")

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

cloudflare 发表于 2024-5-15 08:09
我记得用装饰器更方便,不用重复工作
IIce_ 发表于 2024-5-16 10:31
通用脚本,可以直接调用,也可以当做装饰器使用
[Python] 纯文本查看 复制代码
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()
52soft 发表于 2024-5-15 06:52
傲雪不傲霜 发表于 2024-5-15 09:45
cloudflare 发表于 2024-5-15 08:09
我记得用装饰器更方便,不用重复工作

是的,相当于套一个计时函数
wkdxz 发表于 2024-5-15 10:24
我有个简单的计时函数,经常用。
[Python] 纯文本查看 复制代码
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} ")
weishaovvv 发表于 2024-5-15 10:58
这个好,拿来用用。
LightswornSnow 发表于 2024-5-15 19:24
装饰器经典场景,大概这种感觉
[Python] 纯文本查看 复制代码
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()
 楼主| cenoser795 发表于 2024-5-15 20:15
LightswornSnow 发表于 2024-5-15 19:24
装饰器经典场景,大概这种感觉
[mw_shl_code=python,true]import time
def timing(fn):

学习了!
 楼主| cenoser795 发表于 2024-5-15 20:16
cloudflare 发表于 2024-5-15 08:09
我记得用装饰器更方便,不用重复工作

学习了!
hellohuan 发表于 2024-5-16 02:44
LightswornSnow 发表于 2024-5-15 19:24
装饰器经典场景,大概这种感觉
[mw_shl_code=python,true]import time
def timing(fn):

又学到了一招!
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 15:38

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表