在特定时间调用方法(python)

2024-04-16 14:54:34 发布

您现在位置:Python中文网/ 问答频道 /正文

在某个时间调用方法的正确方法是什么(这里的某个时间是一个参数)?在

我需要计时器,但是有必要用秒来表示传入时间和time.now()来获取和使用它们之间的差异吗?在

代码:

import datetime, time
import threading
from threading import Timer

def doItThen():
    print ("did it")

def launchTimer(dateAndTime):
    dateTimeNow = datetime.datetime.now()
    t = threading.Timer((dateAndTime-dateTimeNow).seconds, doItThen)
    t.start()

if __name__ == "__main__":

    launchTimer(datetime.datetime(2018, 2, 21, 8, 27, 51))

结果是:

did it

(工程)

但是使用这种方法有什么风险?我不擅长测试或预测周长


Tags: 方法importdatetimetimedef时间itnow
3条回答

使用python schedule

schedule.every().day.at("10:10").do(job)

从Python的Sched lib中查看scheduler.enterabs。在

enterabs函数允许您设置调用函数的特定时间。这是一个direct link。在

基本语法如下:

scheduler.enterabs(time, priority, action, argument=(), kwargs={})

如果我没弄错你的问题,模块schedule可能就是你要找的。在

How do I get a Cron like scheduler in Python?

import schedule
import time 
def job(): 
    print("I'm working...")     

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job) 
schedule.every().day.at("10:30").do(job) 
while 1: 
    schedule.run_pending()
    time.sleep(1)

相关问题 更多 >