【发布时间】:2011-05-23 20:13:11
【问题描述】:
我需要一个接一个地运行多个程序,每个程序都在控制台窗口中运行。 我希望控制台窗口可见,但会为每个程序创建一个新窗口。这很烦人,因为在 Eclipse 中工作时,每个窗口都在另一个窗口关闭的新位置打开并窃取焦点。
这是我使用的初始代码:
def runCommand( self, cmd, instream=None, outstream=None, errstream=None ):
proc = subprocess.Popen( cmd, stdin=instream, stdout=outstream, stderr=errstream )
while True:
retcode = proc.poll()
if retcode == None:
if mAbortBuild:
proc.terminate()
return False
else:
time.sleep(1)
else:
if retcode == 0:
return True
else:
return False
在调用 subprocess.Popen 然后调用 proc.stdin.write( b'program.exe\r\n' ) 时,我切换到使用 'cmd' 打开命令提示符。 这似乎解决了一个命令窗口问题,但现在我不知道第一个程序何时完成,我可以启动第二个程序。我想在运行第二个程序之前停止并询问第一个程序的日志文件。
关于如何实现这一点的任何提示?是否有其他选项可以在我尚未找到的窗口中运行程序?
【问题讨论】:
标签: python windows eclipse console subprocess