返回值x = os.system(..)

时间:2014-09-23 22:17:47

标签: python linux os.system

当我在Python中以{root}形式输入os.system("whoami")时,它会返回root,但当我尝试将其分配给变量x = os.system("whoami")时,它会设置x的值为什么? (:

2 个答案:

答案 0 :(得分:28)

os.system()返回(编码的)进程退出值。 0意味着成功:

  

在Unix上,返回值是以wait()指定的格式编码的进程的退出状态。请注意,POSIX没有指定C系统()函数的返回值的含义,因此Python函数的返回值是依赖于系统的。

您看到的输出将写入stdout,因此您的控制台或终端将被写入,而不会返回给Python调用者。

如果您想捕获stdout,请改为使用subprocess.check_output()

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

答案 1 :(得分:4)

os.system('command')返回一个16位的数字,左边的前8位(lsb)讨论os用来关闭命令的信号,接下来的8位讨论命令的返回代码。

请参阅我的答案,了解What is the return value of os.system() in Python?

中的更多详情