如何在按下ESC键时退出Python2.x脚本

12 浏览
0 Comments

如何在按下ESC键时退出Python2.x脚本

这个问题已经有答案了:

如何从用户读取单个字符?

我是Python的新手,我有一个Python2.x的脚本,它在bash中要求用户在A、B或C之间选择一个答案。当只按下Escape键时,我怎样才能使脚本立即退出,同时等待用户输入?

目前,我有这个函数。但是,按下Escape键后,我还必须按下Enter键。

def choice(prompt):
    """
    Choose A, B or C
    ESC exits script
    """
    while True:
        char = raw_input(prompt)
        if char.encode() == '\x1B': # ESC is pressed
            sys.exit("Quitting ...")
        elif char.lower() not in ('a', 'b', 'c'):
            print("Wrong input. Please try again.")
            continue
        else:
            break
    return char
user_choice = choice("\nChoose between A - C: ")
print("You chose %s.") % user_choice.upper()

代码是UTF-8格式,bash终端中的Escape键给了我^[。据我所知,msvcrt在Linux上不起作用。这能做到吗,以便脚本在Windows和Linux上都能工作?

admin 更改状态以发布 2023年5月23日
0
0 Comments

要实现不需要用户按回车即可读取和输入数据,您可以使用 msvcrt 模块。您可以在 这里 找到更多关于它的信息。

0