クロスプラットフォームでの単一文字入力の取得
ユーザーの入力から単一文字を読み取ることは、さまざまなシナリオで役立ちます。これを実現するには、次のクロスプラットフォーム ソリューションを利用できます:
ActiveState Recipes サイトでは、さまざまなオペレーティング システムを対象とした包括的なレシピが提供されています:
Windows :
Linux および OSX:
提供されたコード スニペットは、この実装を示しています。
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()
getch() を呼び出すだけで、バッファリングやエコーを行わずに単一の文字を取得できます。ターミナル。
以上がクロスプラットフォームでユーザー入力から 1 文字を読み取るにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。