當前位置: 首頁>>代碼示例>>Python>>正文


Python tty.setraw方法代碼示例

本文整理匯總了Python中tty.setraw方法的典型用法代碼示例。如果您正苦於以下問題:Python tty.setraw方法的具體用法?Python tty.setraw怎麽用?Python tty.setraw使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在tty的用法示例。


在下文中一共展示了tty.setraw方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: raw_terminal

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def raw_terminal():
        if not isatty(sys.stdin):
            f = open('/dev/tty')
            fd = f.fileno()
        else:
            fd = sys.stdin.fileno()
            f = None
        try:
            old_settings = termios.tcgetattr(fd)
            try:
                tty.setraw(fd)
                yield fd
            finally:
                termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
                sys.stdout.flush()
                if f is not None:
                    f.close()
        except termios.error:
            pass 
開發者ID:Frank-qlu,項目名稱:recruit,代碼行數:21,代碼來源:_termui_impl.py

示例2: getchar

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def getchar(echo):
        if not isatty(sys.stdin):
            f = open('/dev/tty')
            fd = f.fileno()
        else:
            fd = sys.stdin.fileno()
            f = None
        try:
            old_settings = termios.tcgetattr(fd)
            try:
                tty.setraw(fd)
                ch = os.read(fd, 32)
                if echo and isatty(sys.stdout):
                    sys.stdout.write(ch)
            finally:
                termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
                sys.stdout.flush()
                if f is not None:
                    f.close()
        except termios.error:
            pass
        _translate_ch_to_exc(ch)
        return ch.decode(get_best_encoding(sys.stdin), 'replace') 
開發者ID:jpush,項目名稱:jbox,代碼行數:25,代碼來源:_termui_impl.py

示例3: read_char_no_blocking

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def read_char_no_blocking():
    ''' Read a character in nonblocking mode, if no characters are present in the buffer, return an empty string '''
    fd = sys.stdin.fileno()
    old_settings = termios.tcgetattr(fd)
    old_flags = fcntl.fcntl(fd, fcntl.F_GETFL)
    try:
        tty.setraw(fd, termios.TCSADRAIN)
        fcntl.fcntl(fd, fcntl.F_SETFL, old_flags | os.O_NONBLOCK)
        return sys.stdin.read(1)
    except IOError as e:
        ErrorNumber = e[0]
        # IOError with ErrorNumber 11(35 in Mac)  is thrown when there is nothing to read(Resource temporarily unavailable)
        if (sys.platform.startswith("linux") and ErrorNumber != 11) or (sys.platform == "darwin" and ErrorNumber != 35):
            raise
        return ""
    finally:
        fcntl.fcntl(fd, fcntl.F_SETFL, old_flags)
        termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) 
開發者ID:pindexis,項目名稱:marker,代碼行數:20,代碼來源:readchar.py

示例4: spawn

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def spawn(argv, master_read=_read, stdin_read=_read):
    """Create a spawned process."""
    if type(argv) == type(''):
        argv = (argv,)
    pid, master_fd = fork()
    if pid == CHILD:
        os.execlp(argv[0], *argv)
    try:
        mode = tty.tcgetattr(STDIN_FILENO)
        tty.setraw(STDIN_FILENO)
        restore = 1
    except tty.error:    # This is the same as termios.error
        restore = 0
    try:
        _copy(master_fd, master_read, stdin_read)
    except (IOError, OSError):
        if restore:
            tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)

    os.close(master_fd) 
開發者ID:IronLanguages,項目名稱:ironpython2,代碼行數:22,代碼來源:pty.py

示例5: raw_terminal

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def raw_terminal():
        if not isatty(sys.stdin):
            f = open("/dev/tty")
            fd = f.fileno()
        else:
            fd = sys.stdin.fileno()
            f = None
        try:
            old_settings = termios.tcgetattr(fd)
            try:
                tty.setraw(fd)
                yield fd
            finally:
                termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
                sys.stdout.flush()
                if f is not None:
                    f.close()
        except termios.error:
            pass 
開發者ID:pypa,項目名稱:pipenv,代碼行數:21,代碼來源:_termui_impl.py

示例6: __call__

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def __call__(self):
        import sys, tty, termios
        from select import select

        fd = sys.stdin.fileno()
        old_settings = termios.tcgetattr(fd)

        try:
            tty.setraw(sys.stdin.fileno())

            # [ Wait until ready for reading,
            #   wait until ready for writing
            #   wait for an "exception condition" ]
            # The below line times out after 1 second
            # This can be changed to a floating-point value if necessary
            [i, o, e] = select([sys.stdin.fileno()], [], [], 1)
            if i:
                ch = sys.stdin.read(1)
            else:
                ch = None

        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)

        return ch 
開發者ID:AlexisTM,項目名稱:flyingros,代碼行數:27,代碼來源:getch.py

示例7: spawn

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def spawn(argv, master_read=_read, stdin_read=_read):
    """Create a spawned process."""
    if type(argv) == type(''):
        argv = (argv,)
    pid, master_fd = fork()
    if pid == CHILD:
        os.execlp(argv[0], *argv)
    try:
        mode = tty.tcgetattr(STDIN_FILENO)
        tty.setraw(STDIN_FILENO)
        restore = 1
    except tty.error:    # This is the same as termios.error
        restore = 0
    try:
        _copy(master_fd, master_read, stdin_read)
    except OSError:
        if restore:
            tty.tcsetattr(STDIN_FILENO, tty.TCSAFLUSH, mode)

    os.close(master_fd)
    return os.waitpid(pid, 0)[1] 
開發者ID:Microvellum,項目名稱:Fluid-Designer,代碼行數:23,代碼來源:pty.py

示例8: yesno

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def yesno(cli_opts: AskCLIOptions, items: List[str]) -> Response:
    import tty
    with alternate_screen():
        if cli_opts.message:
            print(styled(cli_opts.message, bold=True))
        print()
        print(' ', styled('Y', fg='green') + 'es', ' ', styled('N', fg='red') + 'o', set_cursor_visible(False))
        sys.stdout.flush()
        tty.setraw(sys.stdin.fileno())
        try:
            response = sys.stdin.buffer.read(1)
            yes = response in (b'y', b'Y', b'\r', b'\n' b' ')
            return {'items': items, 'response': 'y' if yes else 'n'}
        finally:
            sys.stdout.write(set_cursor_visible(True))
            tty.setcbreak(sys.stdin.fileno())
            sys.stdout.flush() 
開發者ID:kovidgoyal,項目名稱:kitty,代碼行數:19,代碼來源:main.py

示例9: __call__

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
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 
開發者ID:EarToEarOak,項目名稱:RF-Monitor,代碼行數:12,代碼來源:utils_cli.py

示例10: getchar

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def getchar():
        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 
開發者ID:cherrypy,項目名稱:cherrypy,代碼行數:11,代碼來源:logtest.py

示例11: _find_getch

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def _find_getch():
    try:
        import termios
    except ImportError:
        # Non-POSIX. Return msvcrt's (Windows') getch.
        import msvcrt
        return msvcrt.getch

    # POSIX system. Create and return a getch that manipulates the tty.
    import sys, tty
    def _getch():
        fd = sys.stdin.fileno()
        old_settings = None
        try:
            old_settings = termios.tcgetattr(fd)
            tty.setraw(fd)
        except termios.error:
            pass
        try:
            ch = sys.stdin.read(1)
        finally:
            if old_settings is not None:
                termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch

    return _getch 
開發者ID:aaronjanse,項目名稱:asciidots,代碼行數:28,代碼來源:getchar.py

示例12: read_ch

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def read_ch():
    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 
開發者ID:simonmonk,項目名稱:raspberrypi_cookbook_ed2,代碼行數:11,代碼來源:keys_sys.py

示例13: readchar

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def readchar():
    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)
    if ch == '0x03':
        raise KeyboardInterrupt
    return ch 
開發者ID:simonmonk,項目名稱:raspberrypi_cookbook_ed2,代碼行數:13,代碼來源:rover.py

示例14: __call__

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
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)
            sys.stdin.flush()
        finally:
            termios.tcsetattr(fd, termios.TCSADRAIN, old_settings)
        return ch 
開發者ID:Pinafore,項目名稱:qb,代碼行數:13,代碼來源:buzzer.py

示例15: set_terminal

# 需要導入模塊: import tty [as 別名]
# 或者: from tty import setraw [as 別名]
def set_terminal():
        """
        Set the terminal to raw state.

        """
        tty.setraw(sys.stdin.fileno()) 
開發者ID:OTL,項目名稱:cozmo_driver,代碼行數:8,代碼來源:teleop_key.py


注:本文中的tty.setraw方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。