通过sys.exit()防止脚本关闭

Sau*_*ava 0 python python-2.7

我需要每5分钟调用一个脚本(test.py),所以我使用了另一个脚本timer.py和以下代码:

import time
while(1==1):
    execfile("test.py")
    time.sleep(300)
Run Code Online (Sandbox Code Playgroud)

这工作正常.但经过几次迭代后它停止了工作.调试后我发现test.py中有一个流程,它使用以下代码:

sys.exit()
Run Code Online (Sandbox Code Playgroud)

因此,这会导致test.py和timer.py停止.应该做什么更改,以便继续timer.py,因为我希望sys.exit()只退出test.py而不是timer.py

mat*_*ata 8

sys.exit()不会再提高SystemExit(BaseException子类),它可以像任何异常一样被捕获,例如:

import time
while True:
    try:
        execfile("test.py")
    except SystemExit:
        print("ignoring SystemExit")
    finally:
        time.sleep(300)
Run Code Online (Sandbox Code Playgroud)