我有两个列表,其中包含工作时间和要做的
hours = ["00:00","06:00","08:30","09:30","10:30","12:30","14:30","16:00","18:00",]
jobs = [job1,job2,job3,job4,job5,job6,job7,job8,job9]
使用循环来使用计划库来计划作业。
for i,x in zip(hours,jobs):
schedule.every().monday.at(i).do(x)
schedule.every().tuesday.at(i).do(x)
schedule.every().wednesday.at(i).do(x)
schedule.every().thursday.at(i).do(x)
schedule.every().friday.at(i).do(x)
while True:
schedule.run_pending()
time.sleep(1)
我想做的是,在星期五schedule.every().friday.at(i).do(x)
,我安排所有的工作,除了最后一个
job9 at 18:00
在这种情况下,有没有办法避免列表中的最后一项?
我相信Ismail的回答将避免将最后一项工作安排在所有日子里。如果您只想在周五受到影响,请在周五之前放置if
声明:
for i,x in zip(hours,jobs):
schedule.every().monday.at(i).do(x)
schedule.every().tuesday.at(i).do(x)
schedule.every().wednesday.at(i).do(x)
schedule.every().thursday.at(i).do(x)
if i != hours[-1]:
schedule.every().friday.at(i).do(x)
您可以添加一个if
条件来检查它是否位于列表的最后一个元素:
for i,x in zip(hours,jobs):
if i = hours[-1]:
break
schedule.every().monday.at(i).do(x)
schedule.every().tuesday.at(i).do(x)
schedule.every().wednesday.at(i).do(x)
schedule.every().thursday.at(i).do(x)
schedule.every().friday.at(i).do(x)
这将保持循环,直到它到达最后一个元素(hours[-1]
(,在那里它脱离循环。