博主按照自己的需求写的一个可以计算程序耗时的函数,各位有需要的自行改写哈
实现的大致功能
功能1
记录开始时间,返回一个时间字典。数据包括:开始时间的日期格式、文本格式
功能2
记录结束时间和耗时,返回一个时间字典。数据包含:开始时间和结束时间的日期格式、文本格式,另外还多一个时间耗时。
结果示例
代码实现
import time
import datetime
# 计算耗时
def calculate_time_consumption(is_start=True, start_time=0.0, fmt="%Y-%m-%d %H:%M:%S"):
"""
计算传入时间的耗时,返回字典对象,示例:
{'开始时间-日期格式': 1706836313.274818,
'开始时间-文本格式': '2024-02-02 09:23:03',
'结束时间-日期格式': 1706836313.274818,
'结束时间-文本格式': '2024-02-02 09:23:06',
'时间耗时': '执行耗时:0小时0分钟4秒'}
:param is_start: 是否为获取开始时间,默认为获取开始时间
:param start_time: 开始时间的日期格式
:param fmt: 日期转文本格式,默认为%Y-%m-%d %H:%M:%S 示例:2024-02-02 09:23:03
:return: 返回一个时间字典,包含开始、结束的日期和文本格式、计算后的时间耗时
"""
time_dict = {
"开始时间-日期格式": "",
"开始时间-文本格式": "",
"结束时间-日期格式": "",
"结束时间-文本格式": "",
"时间耗时": "",
}
try:
# 记录开始时间
if is_start:
start_time = time.time()
time_dict["开始时间-日期格式"] = start_time
start_time_str = datetime.datetime.fromtimestamp(start_time).strftime(fmt)
time_dict["开始时间-文本格式"] = start_time_str
# 计算耗时
else:
# 处理传入的开始时间
time_dict["开始时间-日期格式"] = start_time
start_time_str = datetime.datetime.fromtimestamp(start_time).strftime(fmt)
time_dict["开始时间-文本格式"] = start_time_str
# 获取结束时间
end_time = time.time()
time_dict["结束时间-日期格式"] = end_time
end_time_str = datetime.datetime.fromtimestamp(end_time).strftime(fmt)
time_dict["结束时间-文本格式"] = end_time_str
# 计算耗时
execution_time = math.ceil(end_time - start_time)
hours = execution_time // 3600
minutes = (execution_time % 3600) // 60
seconds = execution_time % 60
time_consumption = f"执行耗时:{hours}小时{minutes}分钟{seconds}秒"
time_dict["时间耗时"] = time_consumption
except Exception as e:
print(traceback.format_exc())
finally:
return time_dict
# 记录开始时间
start_time_dict = calculate_time_consumption(is_start=True)
print(start_time_dict)
s_time = start_time_dict["开始时间-日期格式"]
time.sleep(3) # 模拟执行程序耗时
# 记录结束时间
end_time_dict = calculate_time_consumption(is_start=False, start_time=s_time)
print(end_time_dict)
e_time = end_time_dict["结束时间-日期格式"]
结果:
# 输出的开始时间
start_data = {
'开始时间-日期格式': 1706837037.4838943,
'开始时间-文本格式': '2024-02-02 09:23:57',
'结束时间-日期格式': '',
'结束时间-文本格式': '',
'时间耗时': ''
}
# 输出的结束时间
end_data = {
'开始时间-日期格式': 1706837037.4838943,
'开始时间-文本格式': '2024-02-02 09:23:57',
'结束时间-日期格式': 1706837040.4889436,
'结束时间-文本格式': '2024-02-02 09:24:00',
'时间耗时': '执行耗时:0小时0分钟4秒'
}