2014-09-23 47 views
9

當我在Python中輸入os.system("whoami")時,它以root身份返回root,但是當我嘗試將它分配給變量x = os.system("whoami")時,它將x的值設置爲0。 ? (:返回值x = os.system(..)

回答

22

os.system()返回(編碼)過程退出值0意味着成功:

在Unix,返回值是在wait()指定的格式編碼的過程的退出狀態注意,POSIX。不指定C系統()函數的返回值的意義,所以Python函數的返回值是系統相關的。

你看到的是寫入stdout的輸出,讓您的控制檯或終端,而不是返回到Python來電者。

如果你想捕捉stdout,使用subprocess.check_output()代替:

x = subprocess.check_output(['whoami'])