如何在 Shell 中不按 Enter 即可获取用户输入?

Patricia Arquette
发布: 2024-11-10 02:03:02
原创
628 人浏览过

How to Get User Input Without Pressing Enter in the Shell?

无需在 Shell 中按 Enter 键即可获取用户输入

您想在 Python 中使用 raw_input 与 shell 中的用户交互,但是无需他们在输入响应后按 Enter 键。

Windows 解决方案

对于 Windows,您可以使用 msvcrt 模块,特别是 msvcrt.getch 函数:

import msvcrt

c = msvcrt.getch()
if c.upper() == 'S':
    print('YES')
登录后复制

Unix 解决方案

对于 Unix,您可以参考此食谱创建类似的 getch 函数:

import tty
import termios

def getch():
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    try:
        tty.setraw(fd)
        ch = sys.stdin.read(1)
    finally:
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
    return ch
登录后复制

使用此函数,您无需按 Enter 键即可检索用户输入:

c = getch()
if c.upper() == 'S':
    print('YES')
登录后复制

以上是如何在 Shell 中不按 Enter 即可获取用户输入?的详细内容。更多信息请关注PHP中文网其他相关文章!

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