我需要对linux进行一些命令行调用,并从中获取返回值,但是按照下面的方式执行只返回0
,而它应该返回一个时间值,比如00:08:19
,我在常规命令行中测试完全相同的调用,它返回时间值00:08:19
,所以我对自己做错了什么感到困惑,因为我认为这是在python中如何做的.
import os
retvalue = os.system("ps -p 2993 -o time --no-headers")
print retvalue
我需要对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等捕捉输出.
沿着这条路由:
imp或t subprocess as sub
p = sub.Popen(['your command', 'arg1', 'arg2', ...],stdout=sub.PIPE,stderr=sub.PIPE)
output, err或s = p.communicate()
print output
或
imp或t os
p = os.popen('command',"r")
while 1:
line = p.readline()
if not line: break
print line