2016-05-14 48 views
0

如何隱藏/刪除輸出0以及Python中的os.system命令在您調用它時生成的新行?如何在Python中調用`os.system`時隱藏或刪除0?

例如:

import os 
os.system('whoami') 

輸出:

userX 
0 
+1

我不認爲你應該看到'0',除非你做類似'打印(使用os.system(」 WHOAMI「))'。 Python不會自動打印函數的返回值。 – Barmar

回答

6

這個怎麼樣?

from subprocess import check_output 
user_name = check_output('whoami').strip() 
print user_name 
#out: userX 
+0

這是我正在尋找,非常感謝 – shaveax

2

使用蟒蛇控制檯

>>> import os 
>>> os.system('whoami') 
userX 
0 

0實際上是os.system('whoami')的返回值,只顯示在Asuming控制檯。用腳本你不會有這個輸出。因此,如果你以某種方式分配的值,它會在技術上被隱藏

>>> import os 
>>> ret = os.system('whoami') 
userX 
+1

即將寫完全一樣的東西:-)我想不出不同的解決方案。 – quapka

1

os.system()返回(編碼的)過程出口值。 0表示成功:

在Unix上,返回值是以wait()指定格式編碼的進程的退出狀態。請注意,POSIX沒有指定C系統()函數返回值的含義,所以Python函數的返回值是依賴於系統的。 你看到的輸出被寫入標準輸出,所以你的控制檯或終端,而不是返回給Python調用者。

如果你想捕捉到標準輸出,使用subprocess.check_output()代替:

x = subprocess.check_output(['whoami']) 
相關問題