我运行一个脚本到ipython(1.2.1),我需要它停止,如果不符合某些条件。我试图使用exit()语句,但它的行为并不像预期的那样。ipython:退出()语句不按预期工作
就拿下面的脚本我把它叫做test.py
:
if(True):
print('Error')
exit()
print('Still here!')
当我运行它使用python test.py
,我得到:
$python test.py
Error
然后执行结束,符合市场预期。
但是,如果我从IPython中使用run -i test.py
运行它,然后我得到:
In [1]: run -i test.py
Error
Still here!
最后IPython中的执行被终止。问题在于,在这种情况下,第二个打印语句仍然执行,而遇到exit()语句时我需要执行脚本。
为什么会发生这种情况,我如何获得我想要的结果? (我正在运行python 2.7.6)
'进口SYS的; sys.exit(0)' –
我不知道ipython,但给'sys.exit()'一试。当然如果你还没有这样做,你还需要'import sys'。简单的'exit()'函数有点奇怪:它被设计为在标准Python交互式解释器中使用的方便,但在其他上下文中使用它通常不是一个好主意。 –
更新到ipython 5 –