获取Python中当前TTY的路径

Get the path of the current TTY in Python

如何获取当前 TTY 的设备路径?

Python 有 sys.stdinsys.stdoutos.ttyname,但您不能将前者中的任何一个传递给后者,因为它需要文件描述符。

这可能存在可移植性问题,但在大多数类 Unix 环境中 /dev/stdout 指的是当前终端并且对于每个连接 [windows、选项卡、ssh 等] 都是唯一的打开。鉴于这些假设,您可以使用:

with open('/dev/stdout') as fd:
    tty_path = os.ttyname(fd.fileno())

您可以将 sys.stdout.fileno 传递给 os.ttyname:

In [3]: os.ttyname(sys.stdout.fileno())
Out[3]: '/dev/pts/24'