首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中读取bash脚本输出时出现问题

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

Stack Overflow用户
提问于 2013-07-13 22:34:55
回答 1查看 518关注 0票数 3

我正在费力地尝试用Python解析以下Bash脚本的输出

代码语言:javascript
复制
#!/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,但它返回一个空列表。

代码语言:javascript
复制
>>>import os
>>>p = os.popen('bin/findpid', 'r')
>>>p.readlines()
[]

同样,使用subprocess.Popen也不返回任何内容

代码语言:javascript
复制
>>>import subprocess
>>>subprocess.Popen('bin/findpid', shell=True)

在bash中运行该脚本将输出如下所示

代码语言:javascript
复制
 8849    02:58:26
 9696    01:58:27

我做错了什么?

EN

回答 1

Stack Overflow用户

发布于 2013-07-13 23:06:21

你能试试这个吗(我用的是python 2.6.6,但你可能想在最新的python 2.6中使用它):

代码语言:javascript
复制
#!/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?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17631151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档