pipe道batch file输出到Python脚本

我试图编写一个运行batch file的Python脚本(在Windows中),并将该batch file的命令行输出作为input。 batch file运行我无法访问的进程,并根据这些进程是否成功提供输出。 我想从batch file中拿这些消息,并在python脚本中使用它们。 任何人有任何想法如何做到这一点?

Solutions Collecting From Web of "pipe道batch file输出到Python脚本"

import subprocess output= subprocess.Popen( ("c:\\bin\\batch.bat", "an_argument", "another_argument"), stdout=subprocess.PIPE).stdout for line in output: # do your work here output.close() 

请注意,最好使用“ @echo off ”来启动批处理文件。

这是一个运行test.bat并显示输出的示例python脚本:

 import os fh = os.popen("test.bat") output = fh.read() print "This is the output of test.bat:", output fh.close() 

test.bat的来源:

 @echo off echo "This is test.bat" 

尝试subprocess.Popen()。 它允许你将stdout和stderr重定向到文件。