在线文档教程

termios

termios - POSIX风格的tty控件

该模块提供了一个用于tty I / O控制的POSIX调用的接口。有关这些调用的完整说明,请参阅termios(2) Unix手册页。它仅适用于那些支持在安装期间配置的POSIX termios风格tty I / O控制的Unix版本。

该模块中的所有函数都将文件描述符fd作为其第一个参数。 这可以是整数文件描述符,如sys.stdin.fileno()返回的文件描述符,也可以是文件对象,如sys.stdin本身。

该模块还定义了使用此处提供的功能所需的所有常量; 这些名称与C中的对应名称相同。有关使用这些终端控制接口的更多信息,请参阅您的系统文档。

该模块定义了以下功能:

termios.tcgetattr(fd)

返回包含文件描述符fd的tty属性的列表,如下所示:[iflag,oflag,cflag,lflag,ispeed,ospeed,cc]其中cc是tty特殊字符的列表(每个长度为1的字符串, 索引为VMIN和VTIME的项目,这些项目在定义这些字段时是整数)。 必须使用termios模块中定义的符号常量来完成cc数组中标志和速度的解释以及索引。

termios.tcsetattr(fd, when, attributes)

从属性设置文件描述符fd的tty属性,这是一个像tcgetattr()返回的属性的列表。 when参数确定属性何时发生更改:TCSANOW立即更改,TCSADRAIN在传输所有排队输出后更改,或TCSAFLUSH在传输所有排队输出并丢弃所有排队输入后更改。

termios.tcsendbreak(fd, duration)

发送文件描述符fd中断。零持续时间发送一个中断0.25 -0.5秒; 非零持续时间具有系统依赖性意义。

termios.tcdrain(fd)

等到写入文件描述符fd的 所有输出都被发送完毕。

termios.tcflush(fd, queue)

丢弃文件描述符fd上的排队数据。 队列选择器指定哪个队列:输入队列的TCIFLUSH,输出队列的TCOFLUSH或两个队列的TCIOFLUSH。

termios.tcflow(fd, action)

在文件描述符fd上挂起或恢复输入或输出。该操作参数可以是TCOOFF暂停输出,TCOON重启输出,TCIOFF暂停输入,或TCION重新启动输入。

扩展内容

Module tty 常见终端控制操作的便捷功能。

1.例子

这里有一个函数,提示输入关闭回显的密码。请注意使用单独tcgetattr()调用和try... finally语句的技巧,以确保无论发生什么情况,都可以精确还原旧的tty属性:

def getpass(prompt="Password: "): import termios, sys fd = sys.stdin.fileno() old = termios.tcgetattr(fd) new = termios.tcgetattr(fd) new[3] = new[3] & ~termios.ECHO # lflags try: termios.tcsetattr(fd, termios.TCSADRAIN, new) passwd = raw_input(prompt) finally: termios.tcsetattr(fd, termios.TCSADRAIN, old) return passwd