import time
startTime = time.time()
time.sleep(3600) # one hour from current time
if time.time() - startTime > 3600:
yourTask()
或
from datetime import datetime, timedelta
import time
currTime = datetime.now()
futureTime = currTime+timedelta(hours = 2) # 2 hours from now, you also can specify days
time.sleep(futureTime-currTime)
# OR Just
time.sleep(timedelta(hours = 2))
yourTask()
3条答案
按热度按时间ryhaxcpt1#
无论您选择什么机制来提醒您并运行脚本,都取决于您,但在计算时间方面,您可以使用timedelta。比如说,;
现在你可以想象,你所要做的就是把结果转换成你想要的格式(秒、分钟、小时等)
nvbavucw2#
你可以
或
这就是python中睡眠和时间函数的一般概念
snvhrwxg3#
要每天在同一时间运行相同的函数,可以使用
sched.scheduler
下面的类或不需要该类的解决方案,我在后面展示了该类,它稍微简单一些:请参阅python事件调度器模块的文档
sched
(部分):课程表。
scheduler
(timefunc=time.monotic,delayfunc=time.sleep)scheduler类定义了调度事件的通用接口。它需要两个函数来实际处理“外部世界”——timefunc应该可以无参数调用,并返回一个数字(“时间”,以任何单位表示)。delayfunc函数应该可以用一个参数调用,与timefunc的输出兼容,并且应该延迟那么多时间单位。在运行每个事件后,还将使用参数0调用delayfunc,以允许其他线程有机会在多线程应用程序中运行。
调度程序。
enterabs
(时间、优先级、操作、参数=(),kwargs={})安排一个新的活动。时间参数应该是与传递给构造函数的timefunc函数的返回值兼容的数字类型。安排在同一时间的事件将按优先级顺序执行。数字越小表示优先级越高。
如果你不想使用
sched.scheduler
类别:如果要确保即使程序在事件开始时间之后启动,您的work函数也会在第一天运行,请将循环更改为以下内容(如果使用
sched.scheduler
类别):不用说(但我还是要说),
my_sleep_func
只是一个time.sleep
替换为在取消注解时打印一些诊断信息的功能print
陈述