跨平台获取单个字符输入
从用户输入中读取单个字符在各种场景下都很有用。为此,您可以利用以下跨平台解决方案:
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中文网其他相关文章!