Press esc to stop and any other key to continue in Python
10,535
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()
Comments
-
CoXier almost 2 years
Now with help of
raw_input
, I can call a method every time user pressesEnter
.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.
-
CoXier about 6 yearsThe output is very strange.
-
ChatterOne about 6 yearsCan you be a bit more specific? There should be no output except for the keys that you press
-
CoXier about 6 yearsYes after I press
ESC
, the output disappear. But when the program is running, I press any other key, the format of output is very strange. -
ChatterOne about 6 yearsI tried this on OS X and iTerm2, are you using a different terminal?
-
CoXier about 6 yearsHave you added
_start()
method? -
ChatterOne about 6 yearsIf you are in a
curses
screen,print
might work slightly differently. If you're talking about the fact that it doesn't go back to the start of the line, try adding a\r
to the end of the string, likeprint('HelloWorld\r')
and see if that works. -
CoXier about 6 yearsFrom doc pynput.readthedocs.io/en/latest/limitations.html#mac-osx, I find we must run program as root.