获取Python中当前TTY的路径
Get the path of the current TTY in Python
如何获取当前 TTY 的设备路径?
Python 有 sys.stdin
、sys.stdout
和 os.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'
如何获取当前 TTY 的设备路径?
Python 有 sys.stdin
、sys.stdout
和 os.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'