按esc停止,任何其他键继续在Python中

时间:2018-02-14 12:43:59

标签: python keyboard

现在在raw_input的帮助下,我可以在每次用户按下Enter时调用方法。

if __name__ == '__main__':
    while True:
        raw_input("Press Enter to continue...")
        _start()
def _start():
     print("HelloWorld")

有一个问题因为只有Ctrl + C,程序才能停止。如你所见,我让程序等待用户按键。

opencv,我发现有类似的需求。

# Hit 'q' on the keyboard to quit!
if cv2.waitKey(1) & 0xFF == ord('q'):
    break

我只想按esc键退出程序并按任意其他键继续。那么有什么方法可以这样做吗?

另外

我的操作系统是OSX。

2 个答案:

答案 0 :(得分:1)

你可以使用pynput,它更容易使用。

from pynput import keyboard

def _start():
     print("HelloWorld")
def on_press(key):
    if key == keyboard.Key.esc:
        # Stop listener
        return False
    else:
        _start()

# Collect events until released
with keyboard.Listener(
        on_press=on_press) as listener:
    listener.join()

答案 1 :(得分:0)

你最好的选择可能是curses方式。

import curses

def main():
    stdscr = curses.initscr()
    while True:
        key = stdscr.getch()
        if key == 27: # This is the escape key code
             curses.endwin()
             break

main()