Я пытаюсь создать приложение для тревоги, но я пытаюсь заставить модуль «расписание» функционировать так, как мне бы хотелось. Проблема в том, что я не могу запланировать несколько аварийных сигналов на один день при вызове атрибута дня через массив.
Пример того, как вы обычно планировали бы несколько раз на один день:
schedule.every().sunday.at('17:25').do(job)
schedule.every().sunday.at('17:30').do(job)
schedule.every().sunday.at('17:35').do(job)
Это прекрасно работает, но я действительно хочу загрузить время с циклом for, чтобы у меня не было гигантского оператора if, и чтобы я мог динамически загружать времена:
dayArray = [
schedule.every().sunday,
schedule.every().monday,
schedule.every().tuesday,
schedule.every().wednesday,
schedule.every().thursday,
schedule.every().friday,
schedule.every().saturday
]
for i in range(1, xlsxAlarmSheet.ncols):
for j in range(1, 8):
if(str(xlsxAlarmSheet.cell_value(j, i)) != '0'):
dayArray[j - 1].at(str(xlsxAlarmSheet.cell_value(j, i))[:2] + ':' + str(xlsxAlarmSheet.cell_value(j, i))[2:]).do(job)
Дни загружаются из массива, а времена из файла xlsx через модуль XLRD. Единственная проблема заключается в том, что сигналы тревоги перезаписывают друг друга, когда я планирую несколько раз на один день. Если я планирую 3 раза на воскресенье с помощью этого метода, например, только третье запланированное время сработает. Я думал, что это должно быть потому, что когда я загружаю дни в массив, они как-то перестают быть уникальными, поэтому я попытался создать двумерный массив:
dayArray = [[
schedule.every().sunday,
schedule.every().monday,
schedule.every().tuesday,
schedule.every().wednesday,
schedule.every().thursday,
schedule.every().friday,
schedule.every().saturday
]] * (xlsxAlarmSheet.ncols - 1)
for i in range(1, xlsxAlarmSheet.ncols):
for j in range(1, 8):
if(str(xlsxAlarmSheet.cell_value(j, i)) != '0'):
dayArray[i - 1][j - 1].at(str(xlsxAlarmSheet.cell_value(j, i))[:2] + ':' + str(xlsxAlarmSheet.cell_value(j, i))[2:]).do(job)
Без удачи ... времена все ещепереписываете друг друга, есть идеи?