有没有办法检查“当前”控制台是否支持Linux下的256色256色?
我特意不想要使用curses。
答案 0 :(得分:10)
正如评论中所讨论的,正确的解决方案是使用curses
。
>>> import curses
>>> curses.setupterm()
>>> curses.tigetnum("colors")
... 8
答案 1 :(得分:3)
没有可移植的方式检测控制台或终端是否支持256色,因为没有通用的支持接口可以通过它来提出这个问题。这与用户按下功能或箭头键时无法查询终端将发送的字符的方式完全相同。有标准和惯例,但有趣的是,双方都需要依赖于使用相同界面的另一方。
curses的工作方式是它有一个庞大且可配置的终端数据库,它可以查找该数据库中特定终端的功能,以了解其功能。 curses没有检测到连接终端的类型,它通常从TERM
环境变量中获取,该变量通常由知道(或被告知)实际终端连接的内容设置,例如, getty,或ssh或telnet服务器从客户端协商它。