Simple Terminal Colors

By admin
I work in the terminal a lot and I often want to write programs that color their output a bit. For example, perhaps I’m looking at a

sequencing read and I want to know what part of it was the reason it was flagged. I could use

colorama termcolor
PERSON

, or another library, but including a dependency for something this simple is not really worth it. Instead, printing colored text is as simple as:

COLOR_RED_BOLD = ‘\x1b[1;31m’ COLOR_BLUE_BOLD = ‘\x1b[1;34m’

COLOR_END
GPE

= ‘\x1b[0m’ print( "

One
CARDINAL

fish,

two
CARDINAL

fish, " + COLOR_RED_BOLD + "red" + COLOR_END + " fish, " + COLOR_BLUE_BOLD + "blue" + COLOR_END + " fish.")

I usually just want

one
CARDINAL

or

two
CARDINAL

highlight colors, typically in bold, and rarely find the

six
CARDINAL

standard colors limiting. It’s especially helpful if you want to draw your eye to something specific, while maintaining the context around it when you need to look further.

How compatible is this? Will someone with a non-ANSI terminal someday run my code and complain?

One
CARDINAL

data point is that I wrote

icdiff
PERSON

with this approach in

2009
DATE

, and it’s been reasonably popular. While I’ve gotten

hundreds
CARDINAL

of bug reports this has never been

one
CARDINAL

people have complained about.