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

---

# 36.9. [`pty`](https://python-all.ru/2.7/library/pty.html#module-pty) – Утилиты псевдотерминалов

Модуль [`pty`](https://python-all.ru/2.7/library/pty.html#module-pty) определяет операции для работы с концепцией псевдотерминала: запуск другого процесса и возможность программно записывать и читать из его управляющего терминала.

Поскольку работа с псевдотерминалами сильно зависит от платформы, код для этого реализован только для Linux. (Предполагается, что код для Linux будет работать и на других платформах, но это ещё не проверено.)

Модуль [`pty`](https://python-all.ru/2.7/library/pty.html#module-pty) определяет следующие функции:

#### `pty.fork()`

Создаёт процесс. Подключает управляющий терминал дочернего процесса к псевдотерминалу. Возвращаемое значение – `(pid, fd)`. Обратите внимание, что дочерний процесс получает *pid* равным 0, а *fd* является *недействительным*. Родительский процесс возвращает *pid* дочернего процесса, а *fd* – это файловый дескриптор, подключённый к управляющему терминалу дочернего процесса (а также к его стандартному вводу и выводу).

#### `pty.openpty()`

Открывает новую пару псевдотерминалов, используя [`os.openpty()`](https://python-all.ru/2.7/library/os.html#os.openpty), если возможно, или код эмуляции для стандартных Unix-систем. Возвращает пару файловых дескрипторов `(master, slave)`, для ведущего и ведомого конца соответственно.

#### `pty.spawn(argv[, master_read[, stdin_read]])`

Создаёт процесс и подключает его управляющий терминал к стандартному вводу-выводу текущего процесса. Это часто используется, чтобы обмануть программы, которые настаивают на чтении из управляющего терминала.

Функции *master\_read* и *stdin\_read* должны читать из файлового дескриптора. По умолчанию при каждом вызове читается 1024 байта.
