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

Ram*_*mon 14 python linux os.system

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

Mar*_*ers 30

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

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

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

如果你想捕获stdout,请使用subprocess.check_output():

x = subprocess.check_output(['whoami'])
Run Code Online (Sandbox Code Playgroud)


Alo*_*kur 5

os.system('command') 返回一个 16 位数字,从左起的前 8 位(lsb)表示 os 用于关闭命令的信号,接下来的 8 位表示命令的返回码。

有关更多详细信息,请参阅Python 中 os.system() 的返回值是什么?