首页 >后端开发 >Python教程 >如何在 Shell 中不按 Enter 即可获取用户输入?

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

Patricia Arquette
Patricia Arquette原创
2024-11-10 02:03:02668浏览

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

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