Heim >Backend-Entwicklung >Python-Tutorial >Wie liest man ein einzelnes Zeichen aus Benutzereingaben auf verschiedenen Plattformen?
Ein einzelnes Zeichen aus Benutzereingaben plattformübergreifend lesen
In verschiedenen Programmierszenarien ist es notwendig, ein einzelnes Zeichen aus Benutzereingaben zu lesen ohne Pufferung oder Echo. Diese Funktionalität ähnelt der bekannten getch()-Funktion in Windows, es ist jedoch ein universeller Ansatz wünschenswert, der auf mehreren Plattformen funktioniert.
Lösung:
Um dies zu erreichen Für das plattformübergreifende Lesen von Zeichen können Sie ein von der Community betriebenes Python-Rezept von der Website „ActiveState Recipes“ verwenden: „getch()-ähnliches ungepuffertes Lesen von Zeichen von stdin unter Windows und Unix.“ Dieses Rezept stellt eine klassenbasierte Implementierung bereit, die sowohl für Windows- als auch für Unix-basierte Systeme geeignet ist.
Implementierung:
Der folgende Codeausschnitt demonstriert die Implementierung des Cross- Klasse zum Lesen von Plattformzeichen:
class _Getch: """Gets a single character from standard input. Does not echo to the screen.""" def __init__(self): try: self.impl = _GetchWindows() except ImportError: self.impl = _GetchUnix() def __call__(self): return self.impl() class _GetchUnix: def __init__(self): import tty, sys def __call__(self): import sys, tty, termios fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: tty.setraw(sys.stdin.fileno()) ch = sys.stdin.read(1) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch class _GetchWindows: def __init__(self): import msvcrt def __call__(self): import msvcrt return msvcrt.getch() getch = _Getch()
Um diese Klasse zu nutzen, instanziieren Sie einfach die _Getch-Klasse und rufen Sie sie auf. Das Ergebnis ist das vom Benutzer eingegebene einzelne Zeichen ohne Pufferung oder Echo. Zum Beispiel:
result = getch()
Schlussfolgerung:
Dieser plattformübergreifende Ansatz zum Lesen von Zeichen ist weit verbreitet in Situationen, in denen sofortige Benutzereingaben erforderlich sind, wie z. B. das Erfassen von Tastenanschlägen Terminalanwendungen oder die Implementierung interaktiver Benutzeroberflächen.
Das obige ist der detaillierte Inhalt vonWie liest man ein einzelnes Zeichen aus Benutzereingaben auf verschiedenen Plattformen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!