【问题标题】:Python Start function at a given time: Using time.sleep()Python 在给定时间启动函数:使用 time.sleep()
【发布时间】:2018-10-15 17:24:24
【问题描述】:
我正在使用
a = datetime.now()
b = datetime(2018,4,26,00,7,00)
time.sleep((b-a).total_seconds())
在给定时间启动我的脚本,但我想更改它。我不想使用datetime(),而是想使用模块time,因为年月日对我来说无关紧要。我还想通过input("Start time? ") 询问开始时间。我希望你能帮助我,或者你有其他选择。
【问题讨论】:
标签:
python
python-3.x
datetime
time
scheduled-tasks
【解决方案1】:
你可以使用sched模块:
import sched, time
def my_scheduler(delay, func):
s = sched.scheduler(time.time, time.sleep)
s.enter(delay, 1, func)
s.run()
演示:
In [78]: def print_time(a='default'):
... print("From print_time", time.time(), a)
In [77]: while True:
...: try:
...: delay = int(input("Enter the delay seconds: "))
...: except ValueError:
...: print("Invalid input. Pleaes enter only digits!")
...: else:
...: my_scheduler(delay, print_time)
...: break
...:
Enter the delay seconds: 5
# after 5 seconds
From print_time 1525515514.618826 default