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

时间:2012-03-27 05:46:42

标签: python

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

提前谢谢!

1 个答案:

答案 0 :(得分:1)

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

import subprocess

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

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