Python子进程模块:向两个链接的子进程发送字符串

2024-09-26 22:12:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图发送一个字符串到第一个进程的stdin,并将它的stdout链接到第二个进程的stdin

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

第二个程序是lpr,行打印机命令。过程如下:

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

echo "The String" | paps | 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]

这是来自文档:

^{pr2}$

在我的例子中,原始输出源于我的程序,并被发送到第一个进程的stdin。在


Tags: 字符串文档import程序bin进程usrstdin

热门问题