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
底層終端控制介面。