【发布时间】:2013-02-26 22:50:15
【问题描述】:
我们正在尝试创建一个 python 脚本来通过 windows shell 提示安装应用程序,执行我们的 python 脚本。我们有来自 app.exe 的输出提示,指示 “按 Enter 继续...”
我们尝试模拟 Enter 键,但它不起作用。提示只是静止不动,没有进入下一个向导步骤。
我们如何克服这个问题?
import subprocess
import win32console
APP_BIN = 'app.exe'
def main():
proc = subprocess.Popen([APP_BIN,'-i','console'],stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
proc.stdin.write("\r\n") <--- issue
output = proc.stdout.readline() <--- issue
print output
ret = proc.wait()
print ret
if __name__ == '__main__':
main()
【问题讨论】:
-
proc.stdin可能已缓冲。如果是,您将需要执行proc.stdin.flush()以确保该过程已收到您发送的所有字符。我不知道这是否能解决您的问题。