带有管道的子进程调用[重复]

Posted

技术标签:

【中文标题】带有管道的子进程调用[重复]【英文标题】:Subprocess call with pipe in it [duplicate] 【发布时间】:2016-12-22 00:16:16 【问题描述】:

我将如何在 python 中执行以下子进程命令?

$ ps aux|grep python

>>> subprocess.check_output(['ps', 'aux', 'grep', 'python']) ?

【问题讨论】:

您需要创建两个子进程,一个为ps aux,另一个为grep python。将第一个的输出管道连接到第二个的输入管道。 见***.com/questions/6780035/… 【参考方案1】:

您可以执行以下操作:

ps = subprocess.Popen(('ps', 'aux'), stdout=subprocess.PIPE)
output = subprocess.check_output(('grep', 'python'), stdin=ps.stdout)
ps.wait()

print output

【讨论】:

以上是关于带有管道的子进程调用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

在 PySpark 中涉及带有管道的子进程的映射步骤失败

如何使用python子进程调用在命令中使用管道[重复]

持久的子进程管道 - 没有读取标准输出

linux 编程问题:子进程1和2为啥也能对管道进行操作?

使用带有标准输入和标准输出重定向的 2 进程管道时如何避免标准输入上的重复输入

python子进程中的子shell