问题
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.
回答1:
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()
回答2:
Your best bet is probably go the curses
way.
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()
来源:https://stackoverflow.com/questions/48787563/press-esc-to-stop-and-any-other-key-to-continue-in-python