通过Python脚本按回车键
我们正在尝试创建一个Python脚本,通过Windows命令提示符来安装一个应用程序,也就是运行我们的Python脚本。应用程序的输出提示是“按回车键继续...”
我们尝试模拟按下回车键,但没有成功。提示信息没有变化,无法进入下一个步骤。
我们该如何解决这个问题呢?
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()
2 个回答
0
以下内容可能有效(尚未测试):
import subprocess
import win32console
APP_BIN = 'app.exe'
def main():
proc = subprocess.Popen([APP_BIN,'-i','console'],stdin=subprocess.PIPE,
stdout=subprocess.PIPE)
stdoutdata, stderrdata = proc.communicate(input="\r\n")
output = stdoutdata.readline()
print output
ret = proc.wait()
print ret
if __name__ == '__main__':
main()
3
我不太确定怎么在Python中做到这一点,但我建议你模拟一下真正的“回车”键按下的命令。在你的代码里,你只是改变了光标的位置,并没有真正发出一个回车的指令。
你可以看看这个链接: http://win32com.goermezer.de/content/view/136/254/
import win32com.client
shell = win32com.client.Dispatch("WScript.Shell")
shell.SendKeys("{ENTER}", 0)
看起来这正是你需要的。