消除通过键盘输入按 Enter 的需要
在 shell 中使用 Python 的 raw_input 函数进行用户交互时,会出现一个常见问题:用户在提供输入后必须按 Enter 键。要消除此额外步骤,请考虑以下解决方案:
对于 Windows 环境
Windows 系统提供 msvcrt 模块,其中包含 getch 函数。此函数捕获按键,无需回显到控制台,也不需要按下 Enter 键。
对于基于 Unix 的环境
Unix 系统缺乏内置的 getch函数,但可以使用以下配方创建类似的函数:
import termios, fcntl, sys, os def getch(): fd = sys.stdin.fileno() oldterm = termios.tcgetattr(fd) newattr = termios.tcgetattr(fd) newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO termios.tcsetattr(fd, termios.TCSANOW, newattr) c = None try: c = os.read(fd, 1) finally: termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm) return c
此函数从键盘读取单个字符无需 Enter 键,提供所需的无缝用户输入体验。
以上是如何在Python中键盘输入后不再需要按Enter键?的详细内容。更多信息请关注PHP中文网其他相关文章!