我正在寻找一种可靠的方法来测试输出( stdout,stderr )端子是否支持ANSI(或任何一种)颜色。
因为当今大多数终端(即使在Windows上)也至少支持ANSI颜色,所以我发现的所有答案都已过时或错误。 (我已经知道打印颜色测试图案并检查 Unicode / UTF-8 功能是多么容易。)
我看到了部分尝试和变化:
请注意,这对于基于* nix的环境来说非常容易实现,因为他们几乎总是将TERM
变量设置为 xterm
类型。但也希望为此找到一些Windows环境变量。
问:我如何获取我的python3代码来检查输出是否使用支持颜色的终端/控制台?
答案必须是跨平台兼容的,例如能够在Windows上进行检查。
更新:
显然这不是一个简单的问题!它似乎取决于许多因素,例如: