PyCharm中schedule定时任务报AttributeError及time导入异常
问题排查与修复方案
问题1:import time 语句灰色置灰
- 核心原因:PyCharm会自动检测未被实际调用的导入语句,对这类无效导入做灰显提示。你当前代码仅导入了
time模块,但没有编写定时任务常驻运行的轮询逻辑,没有调用time模块的任何方法,因此被判定为未使用导入置灰。 - 特殊情况排查:如果置灰同时伴随导入失败报错,检查项目根目录下是否存在自定义命名为
time.py的文件,该命名会和Python标准库time产生命名冲突,将自定义文件重命名为其他非冲突名称即可。
问题2:AttributeError: 'function' object has no attribute 'day' 报错
- 核心原因:
schedule库的定时规则语法书写错误。schedule.every是需要调用的方法,必须添加括号执行后,才能链式调用后续的day属性;你写的schedule.every.day是直接访问函数对象的day属性,该属性不存在,因此抛出属性错误。
修正后完整可运行代码
import schedule import time from openpyxl import load_workbook def Date_Table(): wb = load_workbook(r'你的工作簿绝对路径') wb.save(r'你的工作簿保存路径') # 修正语法:every()加括号,建议时间用24小时制避免上下午混淆 schedule.every().day.at("01:00").do(Date_Table) # 补充定时任务常驻轮询逻辑,time模块在此处被实际调用,置灰问题自动解决 while True: schedule.run_pending() time.sleep(60) # 每60秒检查一次待执行的定时任务
注:运行该脚本后需要保持进程常驻,到设定时间才会自动触发工作簿打开保存操作,如果需要后台静默运行可以将脚本注册为系统服务或者用pythonw.exe启动。
内容的提问来源于stack exchange,提问作者Alexa Bell
相关产品推荐
相关产品推荐

