Python在给定时间启动函数:使用time.sleep()

时间:2018-05-05 10:06:16

标签: python python-3.x datetime time scheduled-tasks

我正在使用

a = datetime.now()
b = datetime(2018,4,26,00,7,00)
time.sleep((b-a).total_seconds())

在给定时间启动我的脚本,但我想更改它。而不是使用datetime()我想使用模块time,因为年,月和日对我来说无关紧要。我还想通过input("Start time? ")询问开始时间。我希望你能帮助我,或者你也有其他选择。

1 个答案:

答案 0 :(得分:0)

您可以使用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