Why the work is not being performed? If you remove schedule.clear()
everything works, but the scripts are duplicated.
def greet(name):
print('Hello', name)
while True:
schedule.clear()
with open("config.json") as config:
data = json.load(config)
if data["start"]:
date = data["time"]
for i in date:
schedule.every().day.at(i).do(greet, name =data["name"])
config.close()
all_jobs = schedule.get_jobs()
print(all_jobs)
schedule.run_pending()
time.sleep(1)
output
[Every 1 day at 09:18:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-26 09:18:00), Every 1 day at 09:19:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-25 09:19:00), Every 1 day at 09:20:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-25 09:20:00)]
[Every 1 day at 09:18:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-26 09:18:00), Every 1 day at 09:19:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-26 09:19:00), Every 1 day at 09:20:00 do greet(name='Лариса') (last run: [never], next run: 2021-06-25 09:20:00)]
thank you all for your help. I found this solution
while True:
with open("config.json") as config:
data = json.load(config)
if data["start"]:
date = data["time"]
now = datetime.datetime.now()
now = now.strftime('%H:%M')
for i in date:
if i == now:
great(data["name"])
time.sleep(1)