如何在某个时间戳时间运行 python 函数.没有外部软件?



我想告诉python脚本在某个时间戳时间发生时运行某个函数

我已经寻找了特定于运行时的功能 但是我找不到任何可以回答这个特定问题的内容 计算时间戳

#input is number of days till due date
dueDate = int(input('Days until it is due: '))
#86400 seconds in a day
days = dueDate * 86400
#gets current time stamp time 
currentT = int(time.time())
#gets the timestamp for due date 
alarm = days+currentT

目的是找到 Python 函数,该函数可以在出现指定的未来时间戳时从脚本中运行另一个函数

Schedule是一个很好的python模块。

用法:(来自文档)

安装

$ pip install schedule

用法

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)
schedule.every(5).to(10).minutes.do(job)
schedule.every().monday.do(job)
schedule.every().wednesday.at("13:15").do(job)
schedule.every().minute.at(":17").do(job)
while True:
schedule.run_pending()
time.sleep(1)

内置到python 中是sched模块。这是一篇很好的文章,这是官方文档。使用scheduler.enter,您可以延迟安排,而使用scheduler.enterabs您可以安排特定时间。

import sched
import time
scheduler = sched.scheduler(time.time, time.sleep)
def print_event(name):
print('EVENT:', time.time(), name)
now = time.time()
print('START:', now)
scheduler.enterabs(now+2, 2, print_event, ('first',))
scheduler.enterabs(now+5, 1, print_event, ('second',))
scheduler.run()

输出:

START: 1287924871.34
EVENT: 1287924873.34 first
EVENT: 1287924874.34 second

你可以把剧本睡那么久。

time.sleep(alarm)

来源:蟒蛇文档

最新更新