gpt4 book ai didi

python - 无法在 Python 中读取 bash 脚本输出

转载 作者:行者123 更新时间:2023-11-28 19:23:56 25 4
gpt4 key购买 nike

我正在努力尝试用 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

我做错了什么?

最佳答案

你能试试这个吗(我用的是 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?

关于python - 无法在 Python 中读取 bash 脚本输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17631151/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com