如何让Python 3等待任意键盘输入后继续程序运行
Python 实现「按下任意键继续」的解决方案
内置的input("Press Enter to continue")只能识别回车键,无法满足任意按键触发的需求,你可以根据运行环境选择以下方案:
1. Windows 系统原生方案(无额外依赖)
直接调用Windows专属的msvcrt模块实现:
import msvcrt print("按任意键继续...") # 等待任意按键输入,不会显示输入的字符 msvcrt.getch() # 可选:过滤方向键、功能键等特殊按键的二次触发 # while msvcrt.kbhit(): # msvcrt.getch()
特点:无需安装第三方库,仅适配Windows环境,按键触发无延迟。
2. 类Unix系统(Linux/macOS)原生方案(无额外依赖)
通过系统自带的termios、tty模块修改终端属性实现:
import sys import tty import termios def wait_for_any_key(): print("按任意键继续...") fd = sys.stdin.fileno() # 保存终端原配置 old_terminal_setting = termios.tcgetattr(fd) try: # 把终端设置为原始模式,直接读取单个字符不需要回车 tty.setraw(fd) # 读取1个字符就返回 sys.stdin.read(1) finally: # 恢复终端原配置,避免后续终端输入异常 termios.tcsetattr(fd, termios.TCSADRAIN, old_terminal_setting) # 调用函数即可 wait_for_any_key()
特点:无需安装第三方库,仅适配Linux、macOS等类Unix环境,执行完成后会自动恢复终端默认配置,不会影响后续使用。
3. 跨平台通用方案(适配所有操作系统)
如果需要一套代码同时在多个系统运行,可以用第三方库实现,推荐使用getch库:
- 首先执行安装命令:
pip install getch - 示例代码:
import getch print("按任意键继续...") getch.getch()
特点:代码简洁,兼容全平台,不需要根据操作系统做判断。如果需要捕获特殊按键,可以调用getch.getche(),该方法会把按下的字符回显到终端上。
注意:部分第三方按键库在Linux/macOS环境下运行可能需要root权限,遇到权限问题可以切换到对应系统的原生方案使用。
内容的提问来源于stack exchange,提问作者silvncr
相关产品推荐
相关产品推荐

