当前位置: 首页 > 面试题库 >

Python从用户读取单个字符

连正信
2023-03-14
问题内容

有没有一种方法可以从用户输入中读取一个字符?例如,他们在终端上按一个键,然后将其返回(类似getch())。我知道Windows中有一个功能,但是我想要一些跨平台的功能。


问题答案:

以下是指向网站的链接,该网站说明了如何在Windows,Linux和OSX中读取单个字符:http : //code.activestate.com/recipes/134892/

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()


 类似资料:
  • 问题内容: 如何通过键盘用Java输入字符? 问题答案: 您可以扫描整行: 或者,只要您知道要处理的编码,就可以阅读一本:

  • 问题内容: 谁能告诉我该怎么做? 问题答案:

  • get() 是 istream 类的成员函数,它有多种重载形式(请 猛击这里了解详情),不过本文只介绍最简单最常用的一种: int get(); 此函数从输入流中读入一个字符,返回值就是该字符的 ASCII 码。如果碰到输入的末尾,则返回值为 EOF。 EOF 是 End of File 的缩写。istream 类中从输入流(包括文件)中读取数据的成员函数,在把输入数据都读取完后再进行读取,就会返

  • 虽然这可以打印输入: 我在寻找做这项工作的惯用方法

  • 问题内容: 当用户在Java中键入单个字符时,是否有一种简单的方法可从控制台读取它?可能吗?我尝试了这些方法,但是它们都在等待用户按Enter键: 我开始认为System.in在按下Enter之前不知道用户输入。 问题答案: 您要做的是将控制台置于“原始”模式(绕过行编辑且无需输入键),而不是“经烹煮”模式(需要输入键进行行编辑)。在UNIX系统上,“ stty”命令可以更改模式。 现在,关于Ja

  • 有没有一种简单的方法可以在用户用Java输入时从控制台读取单个字符?有可能吗?我尝试过这些方法,但它们都要等待用户按enter键: 我开始认为System.in在按下enter之前并不知道用户的输入。