如何停止立即执行的Python脚本

时间:2018-12-26 17:17:16

标签: python

我有一个带有一堆函数的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条件会阻止这种情况的发生?

谢谢。

2 个答案:

答案 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')