在Python中读取bash脚本输出时出现问题

2024-10-02 10:19:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力用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公司像这样,但它返回一个空列表。在

^{pr2}$

同样,使用子流程.Popen也不返回任何内容

>>>import subprocess
>>>subprocess.Popen('bin/findpid', shell=True)

在bash中运行脚本会输出如下结果

 8849    02:58:26
 9696    01:58:27

我做错什么了?在


Tags: in脚本bashforbinpidgrepps
1条回答
网友
1楼 · 发布于 2024-10-02 10:19:11

你能试试这个吗(我用过Python2.6.6,但你可能希望在最新的Python2.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?在

相关问题 更多 >

    热门问题