我正在费力地尝试用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我做错了什么?
发布于 2013-07-13 23:06:21
你能试试这个吗(我用的是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]更新:可能,findpid脚本的第一个grep也需要-v?
https://stackoverflow.com/questions/17631151
复制相似问题