系统相关
首页 > 系统相关> > python – Linux命令行调用没有返回它应该从os.system?

python – Linux命令行调用没有返回它应该从os.system?

作者:互联网

我需要对linux进行一些命令行调用并从中获取返回值,但是如下所示只返回0时应返回时间值,如00:08:19,我正在测试完全相同的调用命令行,它返回时间值00:08:19所以我很困惑我做错了什么,因为我认为这是如何在python中做到这一点.

import os
retvalue = os.system("ps -p 2993 -o time --no-headers")
print retvalue

解决方法:

返回的是执行此命令的返回值.您在直接执行它时看到的是stdout中命令的输出.返回0意味着执行中没有错误.

使用popen等来捕获输出.

沿着这条线的一些事情:

import subprocess as sub
p = sub.Popen(['your command', 'arg1', 'arg2', ...],stdout=sub.PIPE,stderr=sub.PIPE)
output, errors = p.communicate()
print output

要么

import os
p = os.popen('command',"r")
while 1:
    line = p.readline()
    if not line: break
    print line

在SO:Popen and python

标签:os-system,python,linux,python-2-7,command-line
来源: https://codeday.me/bug/20190918/1810590.html