Bei der Interaktion mit Benutzern in einer Shell mithilfe von raw_input in Python müssen Benutzer dies normalerweise tun Drücken Sie die Eingabetaste, nachdem Sie ihre Antwort eingegeben haben. Dies kann unpraktisch sein, insbesondere wenn Sie den Eingabeprozess rationalisieren möchten. So erreichen Sie dies auf *nixes-Maschinen:
Für Windows benötigen Sie das msvcrt-Modul, insbesondere die Funktion msvcrt.getch(). Diese Funktion liest einen Tastendruck und gibt das resultierende Zeichen zurück, ohne es an die Konsole zurückzugeben. Es blockiert die Ausführung, wenn noch kein Tastendruck verfügbar ist, wartet aber nicht auf die Eingabetaste.
import msvcrt c = msvcrt.getch() if c.upper() == 'S': print('YES')
Für Unix-basierte Systeme sollten Sie die Verwendung der Getch-Funktion in Betracht ziehen aus dem folgenden Rezept:
def getch(): """ getch() -> key character Read a single keypress without echoing to the console. """ import tty import sys fd = sys.stdin.fileno() old_settings = tty.tcgetattr(fd) try: tty.setraw(fd) ch = sys.stdin.read(1) finally: tty.tcsetattr(fd, tty.TCSADRAIN, old_settings) return ch
Diese Funktion deaktiviert die Terminalpufferung und ermöglicht die Eingabe mit nur einem Tastendruck, ohne auf die Eingabetaste warten zu müssen Schlüssel.
Durch die Implementierung dieser Ansätze können Sie Benutzereingaben in Ihren Python-Skripten sammeln, ohne die Eingabetaste drücken zu müssen, wodurch die Benutzererfahrung bei Shell-Interaktionen verbessert wird.
Das obige ist der detaillierte Inhalt vonWie kann ich Benutzereingaben in Python sammeln, ohne die Eingabetaste zu benötigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!