Увеличение атрибута дня «расписания» модулей с переменной в Python - PullRequest
0 голосов
/ 19 октября 2019

Я очень новичок в Python, так что простите, если моя терминология в названии или в теле этого вопроса неверна.

Так вот как вы обычно используете расписание для запуска чего-либо:

schedule.every().sunday.at('8:00').do(job)

Вместо того, чтобы перечислять уникальные дни и время в модуле расписания, я пытаюсь использовать цикл for для увеличения дня и времени из массива и таблицы Excel соответственно, например:

dayArray = ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday']

for i in range(0, 6):            
    if(str(xlsxSheet.cell_value(i,1)) != 'NA'):
        schedule.every().dayArray[i].at(str(xlsxSheet.cell_value(i+18,1))).do(job)

Но я просто получаю ошибку AttributeError: 'Job' object has no attribute 'dayArray', возможно ли заменить это имя атрибута переменной? Большинство ответов, которые я нахожу в Интернете, касаются возврата значения атрибута, ничего не удалось найти.

1 Ответ

0 голосов
/ 19 октября 2019

Этот третий элемент в выражении должен быть индикатором времени или единицей. Опасным способом является создание нужной командной строки (см. Эту ссылку на учебник, пример 7 ), а затем использование literal_eval для выполнения команды.

Другая возможность - поместитьэлементы, которые вы хотите добавить в свой список, а не их отображаемые имена:

day_scheduler_list = [
    schedule.every().sunday,
    schedule.every().monday,
    ...
]
...
day_scheduler_list[i].at(str(xlsxSheet.cell_value(i+18,1))).do(job)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...