在Python中使用变量递增“schedule”modules day属性

2024-10-03 21:35:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python非常陌生,所以如果我在这个问题的标题或正文中的术语不正确,请原谅我

所以,这就是您通常使用schedule来触发某些事件的方式:

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

我没有在schedule模块中列出唯一的日期和时间,而是尝试使用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',是否可以用变量替换这个属性名?我在网上找到的大多数答案都是关于返回属性值的,但没有找到任何答案


Tags: 答案for属性value时间jobcelldo
1条回答
网友
1楼 · 发布于 2024-10-03 21:35:08

表达式中的第三个元素必须是时间指示器或单位。危险的方法是构建所需的命令字符串(参见此tutorial link, example 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)

相关问题 更多 >