在Python 2.6.6中将程序的输出设置为管道

在Python 2.6.6中将程序的输出设置为管道,python,Python,我想知道如何将使用subprocess.Popen运行的程序的输出重定向到我正在使用的程序。例如,如果我正在执行Python ImageProcessing.py in.jpeg out.jpeg中的脚本,我想在更高级别的脚本中执行一些额外的处理;这意味着我希望python代码用管道或其他类型的通信替换out.jpeg。(此外,是的,我知道在大多数情况下进口会更好,在这种情况下我宁愿不进口) 提前谢谢你 您可以将stdout=subprocess.PIPE参数用于Popen。子进程的标准输出是一

我想知道如何将使用subprocess.Popen运行的程序的输出重定向到我正在使用的程序。例如,如果我正在执行Python ImageProcessing.py in.jpeg out.jpeg中的脚本,我想在更高级别的脚本中执行一些额外的处理;这意味着我希望python代码用管道或其他类型的通信替换out.jpeg。(此外,是的,我知道在大多数情况下进口会更好,在这种情况下我宁愿不进口)


提前谢谢你

您可以将
stdout=subprocess.PIPE
参数用于
Popen
。子进程的标准输出是一个普通文件。例如:

import subprocess

p = subprocess.Popen(["/bin/cat", "hello.txt"], stdout=subprocess.PIPE)

for line in p.stdout:
    print("PIPE OUT [%s]" % line)

您可以将
stdout=subprocess.PIPE
参数用于
Popen
。子进程的标准输出是一个普通文件。例如:

import subprocess

p = subprocess.Popen(["/bin/cat", "hello.txt"], stdout=subprocess.PIPE)

for line in p.stdout:
    print("PIPE OUT [%s]" % line)

但这只有在它要停止的时候才会起作用?我不知道如何把它从波本转到斯都。在这种情况下,程序需要写入一个文件。据我现在所知:您有一些程序可以写入一个文件,但无法将其重定向到stdout。示例:
myImageProcessor in.jpg out.jpg
是否要对
out.jpg
进行后期处理?备注二:1)请重新回答你的问题:目前的措辞有误。2) 程序是否能够使用管道作为输出?(例如,它不会对输出进行任何读写访问或使用seek())它会查找写访问;但我希望我能在写字台上插一根管子?很抱歉这样的措辞,将重写。许多系统现在为坚持写入文件名的程序提供
/dev/stdout
。如果您可以在.jpeg中指定
,然后将
/dev/stdout
作为两个路径名,并且这两个路径名都有效,那么这可能会奏效。(可能的问题包括:程序坚持附加
.jpeg
;程序坚持以各种方式测试输出文件;等等),但这只有在它要标准输出时才起作用?我不知道如何把它从波本转到斯都。在这种情况下,程序需要写入一个文件。据我现在所知:您有一些程序可以写入一个文件,但无法将其重定向到stdout。示例:
myImageProcessor in.jpg out.jpg
是否要对
out.jpg
进行后期处理?备注二:1)请重新回答你的问题:目前的措辞有误。2) 程序是否能够使用管道作为输出?(例如,它不会对输出进行任何读写访问或使用seek())它会查找写访问;但我希望我能在写字台上插一根管子?很抱歉这样的措辞,将重写。许多系统现在为坚持写入文件名的程序提供
/dev/stdout
。如果您可以在.jpeg中指定
,然后将
/dev/stdout
作为两个路径名,并且这两个路径名都有效,那么这可能会奏效。(可能的问题包括:程序坚持添加
.jpeg
;程序坚持以各种方式测试输出文件;等等。)