Python颜色输出和分页输出

5 投票
1 回答
1736 浏览
提问于 2025-04-17 05:08

我在用Python 2.4.x,遇到一个问题,就是我无法安装任何非标准的模块。我的环境是*nix。

我有一些输出内容,使用了ansi颜色来美化,效果很好。但是输出内容太长了,我需要把它通过管道传给less,或者用pydoc的page()来处理。

一旦我这样做,颜色就变成了

ESC[1;36m TEXT TO FOLLOW: ESC[1;37m

我在Cucumber: pipe output without losing color上看到,Adam提到很多通过管道输出的内容会失去颜色,但如果直接发送到终端就没问题。

使用pydoc的ttypager可以保留颜色输出,但它没有“less”那种可以向上滚动的功能。

我该如何同时拥有这两种功能呢?既能保留颜色,又能像less那样滚动?

谢谢。

1 个回答

9

在使用 less 命令的时候,加上 -R 这个选项。这样做会让它直接显示ANSI颜色的转义序列,而不是把它们转换成其他格式。根据我的经验,这个选项在我的Debian系统和Mac OS X系统上都能用,这说明 -R 这个选项是很常见的,很多地方都支持。

撰写回答