python - 如何在管道中使用 `subprocess` 命令

我想使用 subprocess.check_output()ps -A | grep 'process_name'。 我尝试了各种解决方案,但到目前为止没有任何效果。有人可以指导我怎么做吗?

最佳答案

要将管道与 subprocess 模块一起使用,您必须传递 shell=True

但是,出于各种原因,这并不是真正可取的,尤其是安全性。相反,分别创建 psgrep 进程,并将输出从一个管道传输到另一个进程,如下所示:

ps = subprocess.Popen(('ps', '-A'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'process_name'), stdin=ps.stdout)
ps.wait()

但是,在您的特定情况下,简单的解决方案是调用 subprocess.check_output(('ps', '-A')) 然后调用 str.find在输出上。

关于python - 如何在管道中使用 `subprocess` 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13332268/

相关文章:

regex - 如何在 find 命令中使用正则表达式?

python - 如何找到已安装的 pandas 版本

python - python多久刷新一次文件?

python - 有哪些好的 Python ORM 解决方案?

python - 在python中获取随机 bool 值?

linux - 如何找出文本文件中的行尾?

python - 在 Python 中计算字典中不同键的数量

python - 将 timedelta 转换为天、小时和分钟

linux - 使用端口 80 (Ubuntu/Linode) 运行 Node.js 时的最佳实践

linux - Linux 内核是如何测试的?