2016-05-14 373 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']) 
相关问题