2016-02-29 48 views
0

腳本成功完成後,Python是否可以打印語句?
實施例的代碼將是這樣的:Python中退出代碼0的條件語句

if 'code variable' == 0: 
    print "Script ran successfully" 
else: 
    print "There was an error" 

怎麼能我的退出代碼值傳遞給一個變量(例如「代碼變量」)?
我覺得這將是一個很好的事情,包括在其他用戶的腳本。
謝謝。

+0

這是你在運行腳本的環境中(例如在bash中)而不是在腳本本身中執行的操作。 – arshajii

回答

2

您可以從shell中執行此操作 - 例如,在擊:

python python_code.py && echo "script exited successfully" || echo "there was an error." 

你不能有一個程序寫這樣的事情本身,因爲它不知道它的退出代碼,直到它已退出 - 此時它沒有運行任何更長的時間來彙報錯誤 :-)。

還有其他事情可以做,以代理這種行爲從過程本身:

try: 
    main() 
except SystemExit as ext: 
    if ext.code: 
     print ("Error") 
    else: 
     print ("Success") 
    raise SystemExit(ext.code) 
else: 
    print ("Success") 

然而,這並沒有,如果有人使用os._exit幫助 - 我們正在追趕只是這裏sys.exit,沒有其他可能導致非零退出狀態的異常。

+0

有沒有辦法在python中查找退出代碼,就像退出代碼爲0或1或n一樣,將該值賦給變量? – Bird

+0

這個解釋是有道理的;它在運行時必須回頭看看。 – Bird

+1

不幸的是,['sys.excepthook()'](https://docs.python.org/2/library/sys.html#sys.excepthook)不會針對'SystemExit'異常進行調用。否則,我會完全公佈一個答案。 :-P(不,使用'atexit'並檢查'sys.exc_info()'也沒有意義)。 –

1

只要在腳本的末尾寫上print,如果它的形式是從上到下直線執行。如果出現錯誤,python會停止腳本並且不會執行打印。不同的情況是,您使用try來管理異常。

或者讓自己的runningpython script.py一個腳本try和你除了會給你比如到文件或任何你想它來存儲/顯示異常。

+0

這是有道理的。我正在使用這種方法,我只是不確定它是否是防呆的。 – Bird