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

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

Susan Sarandon
发布: 2024-11-08 16:05:02
原创
290 人浏览过

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

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板