> **Источник:** https://python-all.ru/3.15/library/tty.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `tty` – Функции управления терминалом

**Исходный код:** [Lib/tty.py](https://python-all.ru/src/3.15/Lib/tty.py)

---

Модуль `tty` определяет функции для перевода tty в режимы cbreak и raw.

[Доступность](https://python-all.ru/3.15/library/intro.html#availability): Unix.

Поскольку для работы требуется модуль [`termios`](https://python-all.ru/3.15/library/termios.html#module-termios), он работает только на Unix.

Модуль `tty` определяет следующие функции:

#### `tty.cfmakeraw(mode)`

Преобразует список атрибутов tty *mode* (такой список возвращает [`termios.tcgetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcgetattr)) в список атрибутов tty в raw-режиме.

Добавлено в версии 3.12.

#### `tty.cfmakecbreak(mode)`

Преобразует список атрибутов tty *mode* (такой список возвращает [`termios.tcgetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcgetattr)) в список атрибутов tty в cbreak-режиме.

Это сбрасывает флаги локального режима `ECHO` и `ICANON` в *mode*, а также устанавливает минимальный ввод в 1 байт без задержки.

Добавлено в версии 3.12.

Изменено в версии 3.12.2: Флаг `ICRNL` больше не сбрасывается. Это соответствует поведению Linux и macOS `stty cbreak`, а также тому, что исторически делал [`setcbreak()`](https://python-all.ru/3.15/library/tty.html#tty.setcbreak).

#### `tty.setraw(fd, when=termios.TCSAFLUSH)`

Изменяет режим файлового дескриптора *fd* на raw. Если *when* опущен, по умолчанию используется [`termios.TCSAFLUSH`](https://python-all.ru/3.15/library/termios.html#termios.TCSAFLUSH) и передаётся в [`termios.tcsetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcsetattr). Возвращаемое значение [`termios.tcgetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcgetattr) сохраняется перед переключением *fd* в raw-режим; это значение возвращается.

Изменено в версии 3.12: Возвращаемое значение теперь представляет собой исходные атрибуты tty, а не `None`.

#### `tty.setcbreak(fd, when=termios.TCSAFLUSH)`

Изменяет режим файлового дескриптора *fd* на cbreak. Если *when* опущен, по умолчанию используется [`termios.TCSAFLUSH`](https://python-all.ru/3.15/library/termios.html#termios.TCSAFLUSH) и передаётся в [`termios.tcsetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcsetattr). Возвращаемое значение [`termios.tcgetattr()`](https://python-all.ru/3.15/library/termios.html#termios.tcgetattr) сохраняется перед переключением *fd* в cbreak-режим; это значение возвращается.

Это сбрасывает флаги локального режима `ECHO` и `ICANON`, а также устанавливает минимальный ввод в 1 байт без задержки.

Изменено в версии 3.12: Возвращаемое значение теперь представляет собой исходные атрибуты tty, а не `None`.

Изменено в версии 3.12.2: Флаг `ICRNL` больше не сбрасывается. Это восстанавливает поведение Python 3.11 и более ранних версий, а также соответствует тому, что описано в man-страницах `stty(1)` в Linux, macOS и BSD относительно cbreak-режима.

> **См. также**
>
> **Модуль [`termios`](https://python-all.ru/3.15/library/termios.html#module-termios)**
>
> Низкоуровневый интерфейс управления терминалом.
