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

以上是 Linux命令行调用没有从os.system返回什么? 的全部内容, 来源链接: utcz.com/qa/408254.html

回到顶部