0%

tui杂记

isatty

在终端中,许多程序会将输出进行配色等的美化。但当输出被重定向到文件中时,我们肯定不希望这些控制字符被写入文件。所以一些程序会使用 isatty 判断当前得标准输出是不是连接到了终端上,从而自动使用合理的输出方式。

一个 python 的 demo 如下

1
2
3
4
5
6
7
import os
import sys

if os.isatty(sys.stdout.fileno()):
print("tty find")
else:
print("No tty")

当标准输出在终端中且没有重定向时,会输出 tty find,否则输出 No tty

1
2
3
4
➜ python tty_test.py               
tty find
➜ python tty_test.py | cat
No tty