确定当前Linux终端是否支持256种颜色?
有没有什么方法可以检查在Linux下,当前的控制台是否支持256种颜色,使用Python来实现?
我特别不想使用curses这个库。
2 个回答
4
没有一种通用的方法可以判断一个控制台或终端是否支持256种颜色,因为没有一个大家都能用的接口来询问这个问题。这就像我们无法查询终端在用户按下功能键或方向键时会发送什么字符一样。虽然有一些标准和约定,但根本上,双方都需要依赖对方使用相同的接口。
curses的工作方式是,它有一个很大的、可以配置的终端数据库,能够查找特定终端的功能,以了解它的能力。curses并不会自动检测连接的终端类型,通常是通过TERM
这个环境变量来获取的,这个变量通常是由一些知道(或被告知)实际连接的终端是什么的程序设置的,比如getty,或者是ssh或telnet服务器从客户端那边协商得来的。
12
在评论中讨论过,正确的解决办法是使用 curses
。
>>> import curses
>>> curses.setupterm()
>>> curses.tigetnum("colors")
... 8