翻閱古今
2019-12-03 10:05:38
我遇到了這個(gè):>>> import os>>> os.system('ls')file.txt README0什么是返回值os.system()?為什么我得到0?
3 回答

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
的返回值os.system取決于OS。
在Unix上,返回值是一個(gè)16位數(shù)字,包含兩個(gè)不同的信息。從文檔中:
一個(gè)16位數(shù)字,其低字節(jié)是殺死進(jìn)程的信號(hào)號(hào),其高字節(jié)是退出狀態(tài)(如果信號(hào)號(hào)為零)
因此,如果信號(hào)編號(hào)(低字節(jié))為0,則從理論上講,將結(jié)果移位8位(result >> 8)以獲取錯(cuò)誤代碼是安全的。該功能os.WEXITSTATUS正是這樣做的。如果錯(cuò)誤代碼為0,則通常意味著該過程已退出且沒有錯(cuò)誤。
在Windows上,文檔指定的返回值os.system取決于外殼程序。如果shell是cmd.exe(默認(rèn)值),則該值是進(jìn)程的返回碼。同樣,0表示沒有錯(cuò)誤。
添加回答
舉報(bào)
0/150
提交
取消