все Python 3Linux · macOSosфункция
os.ctermid
os — псевдотерминалы (pty)
Возвращает путь к управляющему терминалу процесса. Доступно на Unix.
Синтаксис
os.ctermid(...)
Обычно возвращает просто '/dev/tty' — универсальное имя управляющего терминала, а не путь к конкретному устройству вроде /dev/pts/3. Конкретное имя даёт os.ttyname для дескриптора терминала. Открыть '/dev/tty' можно, даже если стандартные потоки перенаправлены, — так программы спрашивают пароль.
Примеры
import os
print(os.ctermid()) # → ? только Unix: /dev/tty — путь к управляющему терминалу
path = os.ctermid() # только Unix
print(os.path.exists(path)) # → True, если у процесса есть управляющий терминал
with open(path, 'w') as tty: tty.write('сообщение мимо перенаправленного stdout\n') # → ? только Unix: строка появится в терминале, даже если stdout перенаправлен в файл
fd = os.open(path, os.O_RDONLY) # → ? только Unix: OSError (ENXIO), если процесс запущен без терминала — демон, cron, systemd
print(os.isatty(fd)) # → True — дескриптор действительно указывает на терминал
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности