我運行一個腳本到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 –