一尘不染

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

linux

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


阅读 292

收藏
2020-06-02

共1个答案

一尘不染

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

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

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

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

x = subprocess.check_output(['whoami'])
2020-06-02