我正在试图解析Python中以下Bash脚本的输出
#!/bin/bash
for pid in `ps aux | grep '[i]nclude' | grep -v '[i]gnore' | awk '{ print $2 }'`; do ps -p $pid -o pid= -o etime=; done
像这样使用os.popen,但它返回一个空列表。
>>>import os
>>>p = os.popen('bin/findpid', 'r')
>>>p.readlines()
[]
同样,使用subprocess.Popen也不返回任何内容
>>>import subprocess
>>>subprocess.Popen('bin/findpid', shell=True)
在bash中运行脚本会输出类似这样的内容
8849 02:58:26
9696 01:58:27
我做错了什么?
答案 0 :(得分:0)
你能尝试一下吗(我使用的是python 2.6.6,但可能你想在最新的python 2.6中使用它):
#!/usr/bin/python
import subprocess
import os
CMD = "bin/findpid"
p = subprocess.Popen(CMD, shell=True, stdout=subprocess.PIPE)
print p.communicate()[0]
UPDATE :可能,第一个grep的findpid脚本需要-v吗?