【发布时间】:2017-10-27 10:35:19
【问题描述】:
我正在 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 的执行被终止。问题是在这种情况下第二个打印语句仍然执行,而我需要在遇到 exit() 语句时立即终止脚本的执行。
为什么会发生这种情况,我怎样才能获得我想要的结果? (我正在运行 python 2.7.6)
【问题讨论】:
-
import sys; sys.exit(0) -
我不知道 ipython,但试试
sys.exit()。当然,如果您还没有这样做,您还需要import sys。普通的exit()函数有点奇怪:它被设计为方便在标准 Python 交互式解释器中使用,但在其他上下文中使用它通常不是一个好主意。 -
更新到 ipython 5
-
@cricket_007 它有效!但是为什么 exit() 完全不起作用?如果您在答案中转换您的评论并向我解释这一点,我将很高兴接受它!
标签: python ipython exit execution terminate