從哪裏可以找到有關Unix上「python」進程退出代碼含義的信息?舉例來說,如果我做的 「巨蟒thisfiledoesntexist.py」,我得到退出代碼2Python退出代碼
摘要:
from errno import errorcode
print errorcode[2]
從哪裏可以找到有關Unix上「python」進程退出代碼含義的信息?舉例來說,如果我做的 「巨蟒thisfiledoesntexist.py」,我得到退出代碼2Python退出代碼
摘要:
from errno import errorcode
print errorcode[2]
如前所述,主要是錯誤代碼來自執行的腳本和sys.exit()
。
具有非現有文件作爲解釋器參數的示例屬於不同的類別。儘管我猜測它沒有任何說明,但這些退出代碼是「標準」linux錯誤代碼。有一個名爲errno
提供這些錯誤的數字模塊(來自linux/include/errno.h
的退出代碼
即:errno.ENOENT
(表示爲「沒有這樣的文件或目錄」)有一個與您例如
蟒蛇手冊指出這對於它的退出代碼:
一些系統具有特定退出代碼指定特定的含義慣例,不過一般都是不發達; Unix程序通常使用2作爲命令行語法錯誤,1使用其他類型的錯誤。
所以,既然您指定thisfiledoesntexist.py
作爲命令行參數,你得到的2返回代碼(假設該文件不,事實上存在的。在這種情況下,我推薦它重命名爲thisfiledoesexist.py
。;)
)
其他的那種解析錯誤,返回碼由python程序運行決定。除非您指定sys.exit
另一個退出代碼,否則返回0。 Python本身不會干涉。
不幸的是,沒有100%的保證,蟒蛇退出代碼將是他們會有怎樣的documentation聲稱:os._exit允許Python程序員來定義其退出代碼應該被使用,這意味着python file_exists_but_claims_that_it_does_not.py
可以用os.EX_DATAERR
在我的Ubuntu系統上,它好像從'errno'返回代碼,不確定'os'代碼是什麼,但是賦予與'errno'模塊相同數值的不同含義 –
這是從Python *程序調用'exit'的工具,並且與(c)python * interpreter *以及它的返回碼無關。 – phihag