比如我需要程序在次日08:30执行,该怎么处理
1.获取现在的时间
2.计算距离明天08:30的时间差
3.time.sleep
我打算这样处理,具体该怎么操作呢?
while True:
time_now = time.strftime("%H:%M:%S",time.localtime())
if time_now == "08:30:00":
do()
可以不管时间差什么的,直接到时间开始执行
你确定你要你的程序挂载这么长时间吗?
import sched
import time
from datetime import datetime
# 初始化sched模块的 scheduler 类
# 第一个参数是一个可以返回时间戳的函数,第二个参数可以在定时未到达之前阻塞。
schedule = sched.scheduler(time.time, time.sleep)
# 被周期性调度触发的函数
def printTime(inc):
print(datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
schedule.enter(inc, 0, printTime, (inc,))
# 默认参数60s
def main(inc=60):
# enter四个参数分别为:间隔事件、优先级(用于同时间到达的两个事件同时执行时定序)、被调用触发的函数,
# 给该触发函数的参数(tuple形式)
schedule.enter(0, 0, printTime, (inc,))
schedule.run()
# 10s 输出一次
main(10)
等这么久,与其让python脚本sleep,不如用计划任务,到点儿启动脚本