tty
--- 終端機控制函式¶
原始碼:Lib/tty.py
tty
模組定義了將 tty 放入 cbreak 和 raw 模式的函式。
適用:Unix。
因為它需要 termios
模組,所以只能在 Unix 上執行。
tty
模組定義了以下函式:
- tty.cfmakeraw(mode)¶
操作 tty 属性列表 mode,它是一个与
termios.tcgetattr()
的返回值类似的列表,将其转换为原始模式 tty 的属性列表。在 3.12 版新加入.
- tty.cfmakecbreak(mode)¶
操作 tty 属性列表 mode,它是一个与
termios.tcgetattr()
的返回值类似的列表,将其转换为 cbreak 模式的 tty 的属性列表。这将清除 mode 中的
ECHO
和ICANON
本地模式旗标并将最小输入设为 1 字节且无延迟。在 3.12 版新加入.
在 3.12.2 版的變更:
ICRNL
旗标将不再被清除。 这与 Linux 和 macOS 的stty cbreak
行为以及setcbreak()
在历史上所做的相匹配。
- tty.setraw(fd, when=termios.TCSAFLUSH)¶
將檔案描述器 fd 的模式更改為 raw。如果 when 被省略,則預設為
termios.TCSAFLUSH
,並傳遞給termios.tcsetattr()
。termios.tcgetattr()
的回傳值會在設定 fd 模式為 raw 之前先儲存起來。此函數回傳這個值。在 3.12 版的變更: 現在的回傳值為原本的 tty 屬性,而不是 None。
- tty.setcbreak(fd, when=termios.TCSAFLUSH)¶
將檔案描述器 fd 的模式更改為 cbreak。如果 when 被省略,則預設為
termios.TCSAFLUSH
,並傳遞給termios.tcsetattr()
。termios.tcgetattr()
的回傳值會在設定 fd 模式為 raw 之前先儲存起來。此函數回傳這個值。这将清除
ECHO
和ICANON
本地模式旗标并将最小输入设为 1 字节且无延迟。在 3.12 版的變更: 現在的回傳值為原本的 tty 屬性,而不是 None。
在 3.12.2 版的變更:
ICRNL
旗标将不再被清除。 这恢复了 Python 3.11 及更早版本的行为并与 Linux, macOS 和BSD 在它们的stty(1)
指南页对于 cbreak 模式的描述相匹配。
也參考
termios
模組低階終端機控制介面。