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()
。在將 fd 設定為 raw 模式之前,會儲存termios.tcgetattr()
的返回值;返回此值。在 3.12 版本中變更: 返回值現在是原始的 tty 屬性,而不是
None
。
- tty.setcbreak(fd, when=termios.TCSAFLUSH)¶
將檔案描述符 fd 的模式更改為 cbreak 模式。如果省略 when,則預設為
termios.TCSAFLUSH
,並傳遞給termios.tcsetattr()
。在將 fd 設定為 cbreak 模式之前,會儲存termios.tcgetattr()
的返回值;返回此值。這將清除
ECHO
和ICANON
本地模式標誌,並將最小輸入設定為 1 個位元組,無延遲。在 3.12 版本中變更: 返回值現在是原始的 tty 屬性,而不是
None
。在 3.12.2 版本中變更: 不再清除
ICRNL
標誌。這恢復了 Python 3.11 及更早版本的行為,並與 Linux、macOS 和 BSD 的stty(1)
手冊頁中關於 cbreak 模式的描述相匹配。
參見
- 模組
termios
低階終端控制介面。