我使用的程序有一个已知的错误,它试图在启动时打开一个不存在的XML。该错误导致警报对话框打开。通过按下退出键可以轻松关闭它。
这种方法很完美:
ESCAPE_KEY = b'0x1b'
subprocess.run(PROGRAM_EXE, stdout=subprocess.PIPE,
input=ESCAPE_KEY)
然而,如果我能使用Popen,它会让生活变得更加容易,所以我可以在完成它之后杀死这个过程。
这不起作用:
ESCAPE_KEY = b'0x1b'
p = subprocess.Popen(PROGRAM_EXE, stdout=subprocess.PIPE,
stdin=subprocess.PIPE)
p.communicate(ESCAPE_KEY)
我做错了什么?