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