Python子进程模块: send string to two chained subprocesses

标签 python subprocess

我正在尝试将字符串发送到第一个进程的标准输入,并将其标准输出链接到第二个进程的标准输入

第一个程序是 paps,一个文本到 postscript 转换器,它接受文本文件或字符串作为输入,并将 postscript 文件输出到标准输出

第二个程序是lpr,行式打印机命令。过程是这样的:

  1. 将字符串写入第一个程序的标准输入
  2. 将第一个程序的输出通过管道传输到第二个程序的标准输入。
  3. 第二个程序的输出是由它自己处理的,在 unix 中是这样的:

echo“字符串”|爸爸们 | lpr

这是我从 python 文档中尝试过的内容。

#!/usr/bin/python

import sys
from subprocess import Popen,PIPE

paps=Popen(["/usr/local/bin/paps"],stdin=PIPE,stdout=PIPE)
lpr=Popen(["/usr/bin/lpr"],stdin=paps.stdout)
paps.communicate("ABCD")
paps.stdout.close()
lpr.communicate()[0]

这来自文档:

#p1 = Popen(["dmesg"], stdout=PIPE)
#p2 = Popen(["grep", "hda"], stdin=p1.stdout, stdout=PIPE)
#p1.stdout.close()  # Allow p1 to receive a SIGPIPE if p2 exits.
#output = p2.communicate()[0]

就我而言,原始输出源 self 的程序并发送到第一个进程的标准输入。

最佳答案

lpr=Popen(["/usr/bin/lpr"],stdin=paps.stdout)

stdout=PIPE怎么样?

关于Python子进程模块: send string to two chained subprocesses,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12233307/

相关文章:

python - 如何读取通过 Python 中的 subprocess.popen 生成的文件的输出?

python - 处理 numpy 数组中类的属性

Python多处理池卡在ubuntu服务器上

python - 子进程运行结束后如何获取环境变量?

python - 将信号处理委托(delegate)给 python 中的子进程

python - 如何使用python运行带有参数的exe文件

Python子进程,给子进程一个输入

Python tkinter 性能问题

python - GAE Python2.7客户端证书认证

python - 提供下载文件的链接