tty — 終端控制函式¶
原始碼: Lib/tty.py
tty 模組定義了將 tty 置於 cbreak 和 raw 模式的函式。
可用性: Unix。
由於它需要 termios 模組,因此它只適用於 Unix。
tty 模組定義了以下函式
- tty.cfmakeraw(mode)¶
將 tty 屬性列表 mode(一個類似
termios.tcgetattr()返回的列表)轉換為處於 raw 模式的 tty 屬性列表。3.12 新版功能.
- tty.cfmakecbreak(mode)¶
將 tty 屬性列表 mode(一個類似
termios.tcgetattr()返回的列表)轉換為處於 cbreak 模式的 tty 屬性列表。這將清除 mode 中的
ECHO和ICANON本地模式標誌,並設定最小輸入為 1 位元組且無延遲。3.12 新版功能.
3.12.2 版中已更改: 不再清除
ICRNL標誌。這與 Linux 和 macOSstty 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 設定為 cbreak 模式之前儲存;此值將被返回。這將清除
ECHO和ICANON本地模式標誌,並設定最小輸入為 1 位元組且無延遲。3.12 版中已更改: 返回值現在是原始的 tty 屬性,而不是
None。3.12.2 版中已更改: 不再清除
ICRNL標誌。這恢復了 Python 3.11 及更早版本的行為,並與 Linux、macOS 和 BSD 在其stty(1)手冊頁中描述的 cbreak 模式相關內容相符。
參見
- 模組
termios 底層終端控制介面。