我有一个带有一堆函数的python脚本(script.py),然后是一个main()函数,可以运行所有功能。
在main()之后,我还有:
if __name__ == '__main__':
main()
我现在正在编写一个单独的脚本(timer.py),以便每天午夜运行script.py。
import schedule
import time
from script import main
schedule.every().day.at("00:00").do(main(),'It is 00:00')
while True:
schedule.run_pending()
time.sleep(60) # wait one minute
但是当我运行它时,主程序似乎立即运行。我以为上面的if
条件会阻止这种情况的发生?
谢谢。
答案 0 :(得分:6)
您应将main()
更改为main
,并删除字符串'It is 00:00'
,因为main()
没有参数:
schedule.every().day.at("00:00").do(main)
因为在您的代码中您调用 main()
,并尝试安排调用结果(可能为None
),而您需要传递callable
到调度程序。
答案 1 :(得分:2)
您调用“ main()”方法,而不是传递对“ main”函数的引用。
应该不是这样吗?
schedule.every().day.at("00:00").do(main,'It is 00:00')