在 Python 中使用 raw_input 与 shell 中的用户交互时,用户通常需要输入响应后按 Enter 键。这可能会很不方便,特别是当您想简化输入过程时。以下是如何在 *nixes 机器中完成此操作:
对于 Windows,您需要 msvcrt 模块,特别是 msvcrt.getch() 函数。此函数读取按键并返回结果字符,而不将其回显到控制台。如果按键尚不可用但不等待 Enter,它会阻止执行。
import msvcrt c = msvcrt.getch() if c.upper() == 'S': print('YES')
对于基于 Unix 的系统,请考虑使用 getch 函数来自以下配方:
def getch(): """ getch() -> key character Read a single keypress without echoing to the console. """ import tty import sys fd = sys.stdin.fileno() old_settings = tty.tcgetattr(fd) try: tty.setraw(fd) ch = sys.stdin.read(1) finally: tty.tcsetattr(fd, tty.TCSADRAIN, old_settings) return ch
此函数禁用终端缓冲,允许单键输入而无需等待 Enter 键。
通过实现这些方法,您可以在您的Python脚本无需按Enter键,增强了shell交互时的用户体验。
以上是如何在 Python 中收集用户输入而不需要 Enter 键?的详细内容。更多信息请关注PHP中文网其他相关文章!