我正在使用Windows 10并尝试按顺序在不同文件夹中启动exe。我们的想法是使用子进程中的popen并等待进程完成。问题是,只有点击它或按键才能关闭窗口。在Windows 7机器上,窗口正在关闭,subprocess.wait()完成。
import os
import subprocess
for path in ["C:\tmp\", "C:\tmp2\"]:
os.chdir(path)
mywindow = subprocess.Popen(["my.exe",
#stdin=subprocess.PIPE,
#stdout=subprocess.PIPE,
#stderr=subprocess.PIPE,
#shell=True,
creationflags=subprocess.CREATE_NEW_CONSOLE,
env=dict(os.environ, **{"test":"AUTO"}))
mywindow.wait()
我使用creationflags=subprocess.CREATE_NEW_CONSOLE
,因为我需要能够多次启动my.exe并能够在另一个控制台上读取输出。但在某些情况下,我想等待我的过程结束。
更新
在eryksuns发表评论之后,我非常肯定这更像是一个Windows问题,而不是一个蟒蛇问题。
在Windows 7上,“my.exe”退出,然后wait()
返回。但是,在Windows 10上,我必须单击屏幕上的某个位置或按任意键,以关闭控制台窗口“my.exe”打开。然后wait()
返回。取消cmd快速编辑模式无效。