无法实现代码在指定时间执行,请求技术协助排查问题
问题排查与修复
你的代码存在三个核心问题:
- 时间对象类型不匹配:
dt.datetime.now()返回的是包含日期+时间的datetime对象,而set_time是只有时分秒的time对象,两者直接用==比较永远不会相等。 - 当前时间未实时更新:
timenow只在循环前赋值一次,之后循环里一直用的是初始时间,不会随着时间推移刷新。 - 无延迟的死循环:循环里没有暂停逻辑,会持续占用CPU疯狂打印内容。
修正后的代码:
import datetime import time # 设定目标时间(时分秒) set_time = datetime.time(12, 53) while True: # 实时获取当前时间,并提取time部分 timenow = datetime.datetime.now().time() # 精确到秒比较(如果需要更精确可以到微秒) if timenow.hour == set_time.hour and timenow.minute == set_time.minute and timenow.second == set_time.second: print("yeeehaaa") break # 每秒检查一次,避免占用过多CPU time.sleep(1) print("naaaaa")
补充说明:
- 用
datetime.datetime.now().time()提取当前的时间部分,和set_time类型统一后再比较。 - 加入
time.sleep(1)让每秒检查一次,降低CPU消耗。 - 可以根据需求调整比较精度,比如只比较时分,或者加上秒、微秒。
内容的提问来源于stack exchange,提问作者Wishmaster
相关产品推荐
相关产品推荐

