我需要对linux进行一些命令行调用并从中获取返回值,但是,如下所示,它只是在返回0应返回时间值时返回,例如00:08:19,我正在常规命令行中测试完全相同的调用,并且返回了时间值,00:08:19所以我对自己在做错的事情感到困惑,因为我认为这是在python中做的事情。
0
00:08:19
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