os.system没有得到预期的结果

时间:2018-12-17 11:37:07

标签: python python-3.x

结果变量中的预期结果为 root 。 版本:Python 3.6.7(默认值,2018年10月22日,11:32:17)

>>> import os
>>> os.system("stat -c '%U' /tmp/test")
    root
    0
>>> result = os.system("stat -c '%U' /tmp/test")
    root
>>> print(result)
    0

3 个答案:

答案 0 :(得分:1)

摘自os.system的文档:

  

在Unix上,返回值是进程的退出状态,其编码方式是为wait()指定的格式

您的命令执行没有错误,因此其退出状态为0,即system返回的状态。如果要获取运行命令的输出,则需要通过subprocess模块的功能之一调用该命令。

答案 1 :(得分:0)

根据this链接上的描述,os.system()返回命令的退出代码,而不是实际输出。您可以使用subprocess模块来代替它。

答案 2 :(得分:-1)

os.system仅用于获取返回码,在您的情况下,请尝试使用subprocess.check_output

from subprocess import check_output
result = check_output(["stat","-c","'%U'","/tmp/test"])
print result
root