通过Python脚本按回车键

1 投票
2 回答
14110 浏览
提问于 2025-04-17 17:14

我们正在尝试创建一个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) 

看起来这正是你需要的。

撰写回答