首页 > 解决方案 > 在 python 中使用子进程运行管道命令

问题描述

我正在尝试在带有subprocess.Popenand的管道命令中使用 sed subprocess.PIPE。它似乎对我不起作用,我不知道为什么。

第一个示例使用tr很好

from subprocess import Popen, PIPE
p1 = Popen(["echo", "hello"], stdout=PIPE)
p2 = Popen(["tr", "'h'", "'H'"], stdin=p1.stdout, stdout=PIPE)
p2.wait()

但是,如果我尝试使用sed,我会得到一个退出代码 = 1

from subprocess import Popen, PIPE
p1 = Popen(["echo", "hello"], stdout=PIPE)
p2 = Popen(["sed", "'s/h/H/'"], stdin=p1.stdout, stdout=PIPE)
p2.wait()

标签: pythonsubprocess

解决方案


推荐阅读