Plattformübergreifende Eingabe eines einzelnen Zeichens
Das Lesen eines einzelnen Zeichens aus der Benutzereingabe ist in verschiedenen Szenarien nützlich. Um dies zu erreichen, können Sie die folgende plattformübergreifende Lösung nutzen:
Die ActiveState Recipes-Website bietet ein umfassendes Rezept, das auf verschiedene Betriebssysteme abzielt:
Windows :
Linux und OSX:
Der bereitgestellte Codeausschnitt veranschaulicht diese Implementierung:
class _Getch: 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()
Durch den einfachen Aufruf von getch() erhalten Sie ein einzelnes Zeichen ohne Pufferung oder Echo an das Terminal.
Das obige ist der detaillierte Inhalt vonWie kann ich plattformübergreifend ein einzelnes Zeichen aus Benutzereingaben lesen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!