我正在ipython(1.2.1)中运行一个脚本,如果不满足某个条件,我需要停止它。我尝试使用 exit() 语句,但它的行为不符合预期。
以我称之为test.py
的以下脚本为例:
if(True):
print('Error')
exit()
print('Still here!')
当我使用python test.py
运行它时,我得到:
$python test.py
Error
然后执行按预期终止。
但是如果我使用run -i test.py
从 ipython 运行它,那么我会得到:
In [1]: run -i test.py
Error
Still here!
最后,ipython 的执行被终止。问题是在这种情况下,第二个 print 语句仍然被执行,而我需要在遇到 exit() 语句时立即终止脚本的执行。
为什么会发生这种情况,我怎样才能获得我想要的结果?(我正在运行python 2.7.6)
exit()
本身是针对 REPL 的,并不是真正用于脚本的。
当然,import sys
后尝试使用sys.exit(0)