当我在Python中以{root}形式输入os.system("whoami")
时,它会返回root
,但当我尝试将其分配给变量x = os.system("whoami")
时,它会设置x的值为什么? (:
答案 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?
中的更多详情