Python 等待/暂停直到特定时间...并在计划结束时停止

Python Wait /Pause until specific Time... And stop at end of schedule

使用以下代码,我正在尝试 运行 在 9:15am 和 17:30pm 之间编程;;它应该基本上停在 17:30pm 然后,再次等到第二天 9:15am 而不会自行结束。

### For experiment sake, I have made the datetime.time(20,26) and (20,28)... 
### You may change it to any of the hours and mins of your time...
### But I am hoping it would start and stop between those times please... 

import time, datetime, pause

def printing_something():
    print("Hello World")  # you can add any func here

day_of_week = datetime.date.today().weekday() # (0=Monday), (5=Saturday) and (6=Sunday)
timer_now = datetime.datetime.now().time()

while True:
    if day_of_week < 5 and (timer_now > datetime.time(20,26) and timer_now < datetime.time(20,28)):
        time.sleep(5 - time.time() % 5)
        printing_something()
    else:
        pause.until(datetime(9, 15, 0))

首先... 这段代码的问题是它在时间开始时没有做任何事情,以防我比计划提前一个小时开始......它显示它是 运行ning,但是当确切的时间到来时(例如 20:26hours,就像上面的代码一样),它只是不打印任何要求的内容。

其次…… 如果我碰巧在预定时间内开始,那么它会开始打印,但它不会在 20:28hours 结束时停止打印,就像它预定停止...

那么,问题又来了…… 如果我在白天或晚上的任何时间启动程序,然后离开它...如何让它在 9:15am 处执行并在 17:30pm 处停止...然后让程序保持 运行宁(但暂停)直到第二天 9:15am.....

(为了更清楚,我试图 运行 仅在周一至周五的市场交易时间......部分代码可能不相关,但我是 python, 对不起)

由于这里没有太多帮助,我使用以下代码制定了一个临时解决方法。我在一天的开始手动启动程序执行,然后在 17:30pm,我关闭程序。

import schedule
import time

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

schedule.every(5).minutes.do(job)
schedule.every().day.at("9:15").do(job)

while True:
    schedule.run_pending()
    time.sleep(1)