Ich möchte, dass mein Skript wartet, bis der Benutzer eine beliebige Taste drückt.
Wie kann ich das tun?
In Python 3 gibt es kein raw_input()
. Also, benutzen Sie einfach:
input("Press Enter to continue...")
In Python 2 sollten Sie raw_input()
verwenden, da input(prompt)
äquivalent zu eval(raw_input(prompt))
ist:
raw_input("Press Enter to continue...")
Dies wartet allerdings nur darauf, dass der Benutzer die Eingabetaste drückt, daher sollten Sie msvcrt ((nur Windows/DOS) Das Modul msvcrt gibt Ihnen Zugriff auf eine Reihe von Funktionen der Microsoft Visual C/C++ Runtime Library (MSVCRT)):
import msvcrt as m
def wait():
m.getch()
Dies sollte auf einen Tastendruck warten.
Eine Möglichkeit, dies in Python 2 zu tun, ist die Verwendung von raw_input()
:
raw_input("Press Enter to continue...")
In Python 3 ist es einfach input()
Das Python Handbuch bietet Folgendes:
import termios, fcntl, sys, os
fd = sys.stdin.fileno()
oldterm = termios.tcgetattr(fd)
newattr = termios.tcgetattr(fd)
newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
termios.tcsetattr(fd, termios.TCSANOW, newattr)
oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
try:
while 1:
try:
c = sys.stdin.read(1)
print "Got character", repr(c)
except IOError: pass
finally:
termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
die man in den eigenen Anwendungsfall einbauen kann.