代码之家  ›  专栏  ›  技术社区  ›  ninbura

用python中的变量递增'schedule'modules day属性

  •  0
  • ninbura  · 技术社区  · 5 年前

    我对python很陌生,所以请原谅我在这个问题的标题或正文中使用的术语不正确。

    所以这就是你通常使用日程表来触发的方式:

    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' ,是否可以用变量替换此属性名?我在网上找到的大多数答案都是关于返回一个属性的值,没有找到任何东西。

    1 回复  |  直到 5 年前
        1
  •  0
  •   Prune    5 年前

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