跨平台取得單一字元輸入
從使用者輸入中讀取單一字元在各種場景下都很有用。為此,您可以利用以下跨平台解決方案:
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() 即可獲得單個字符,而無需任何緩衝或回顯終端。
以上是如何跨平台讀取使用者輸入的單一字元?的詳細內容。更多資訊請關注PHP中文網其他相關文章!