首页 >后端开发 >Python教程 >如何在 Python 中收集用户输入而不需要 Enter 键?

如何在 Python 中收集用户输入而不需要 Enter 键?

Susan Sarandon
Susan Sarandon原创
2024-11-08 16:05:02291浏览

How Can I Gather User Input in Python Without Requiring the Enter Key?

无需按 Enter 键即可从用户收集输入

在 Python 中使用 raw_input 与 shell 中的用户交互时,用户通常需要输入响应后按 Enter 键。这可能会很不方便,特别是当您想简化输入过程时。以下是如何在 *nixes 机器中完成此操作:

Windows

对于 Windows,您需要 msvcrt 模块,特别是 msvcrt.getch() 函数。此函数读取按键并返回结果字符,而不将其回显到控制台。如果按键尚不可用但不等待 Enter,它会阻止执行。

import msvcrt

c = msvcrt.getch()
if c.upper() == 'S':
    print('YES')

Unix

对于基于 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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn