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

---

# `pty` – Утилиты псевдотерминала

*Платформы:* IRIX, Linux

Модуль `pty` определяет операции для работы с концепцией псевдо-терминала: запуск другого процесса и возможность программно записывать в его управляющий терминал и читать из него.

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

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

#### `[pty.fork]pty.fork()`

Fork. Подключает управляющий терминал дочернего процесса к псевдо-терминалу. Возвращаемое значение –

`(pid, fd)`

. Обратите внимание, что дочерний процесс получает

*pid*

0, а

*fd*

является

*недействительным*

. Родительский процесс получает

*pid*

дочернего процесса, а

*fd*

– это файловый дескриптор, подключённый к управляющему терминалу дочернего процесса (а также к его стандартному вводу и выводу).

#### `[pty.openpty]pty.openpty()`

Открывает новую пару псевдотерминалов, используя

[`os.openpty()`](https://python-all.ru/3.0/library/os.html#os.openpty)

, если это возможно, или эмуляцию для SGI и универсальных Unix-систем. Возвращает пару файловых descriptors

`(master, slave)`

для ведущего и ведомого концов соответственно.

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

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

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