Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Press esc to stop and any other key to continue in Python

Now with help of raw_input, I can call a method every time user presses Enter.

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

There is a problem because only Ctrl + C, the program can be stopped. As you see, I make my program to wait user to press key.

From opencv, I find there is a similar need.

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

Simply I want to press esc key to exit program and press any other key to continue. So there is any way to do like this?

In Addition

My os is OSX.

like image 285
CoXier Avatar asked Nov 01 '25 13:11

CoXier


1 Answers

you can use pynput,it's easier to use.

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()
like image 186
obgnaw Avatar answered Nov 04 '25 03:11

obgnaw