Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Benutzereingaben in Python sammeln, ohne die Eingabetaste zu benötigen?

Wie kann ich Benutzereingaben in Python sammeln, ohne die Eingabetaste zu benötigen?

Susan Sarandon
Susan SarandonOriginal
2024-11-08 16:05:02249Durchsuche

How Can I Gather User Input in Python Without Requiring the Enter Key?

Eingaben vom Benutzer sammeln, ohne dass die Eingabetaste gedrückt werden muss

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:

Windows

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')

Unix

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn