python – path打印输出

我有这个里面的py文件:

from subprocess import Popen program = "path to program.exe" file = "path to file used by program.exe" p = Popen([program, file]) print p.stdout.read() 

当我这样做的时候:

 C:\>python file.py 

在cmd我得到了

 #output #.... #... more output C:\:>#...more output #.... #...here finishes output 

为什么出现“ C:\> ”? 是否因为Popen为了运行我给予的命令而需要创build一个新的进程?

提前致谢

PD:使用windows server 2008 python 2.7.5

python脚本在启动过程后结束,并且提示符返回(打印C:\> )。 但子进程仍在运行,其stdout和stderr默认在控制台中写入,如果没有重定向,它将继续输出并写入返回的提示。

你可能想要做的就是先等待子进程结束

 subprocess.call([program, file]) 

(如果您只是打印标准输出,则不需要执行任何操作,因为这是默认设置。)

如果你确实需要访问标准输出,重定向标准输出并使用通信。

 p = subprocess.Popen([program, file], stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() print stdout