Функция запуска Python в указанное время: использование time.sleep () - PullRequest
0 голосов
/ 05 мая 2018

Я использую

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

чтобы запустить мой сценарий в указанное время, но я хочу изменить его. Вместо использования datetime() я хочу использовать модуль time, потому что год, месяц и день для меня не важны. Я также хочу попросить время начала через input("Start time? "). Я надеюсь, что вы можете мне помочь, или, может быть, у вас есть альтернативы.

1 Ответ

0 голосов
/ 05 мая 2018

Вы можете использовать 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
...