Simple Terminal Colors

Created on November 12, 2023 at 11:07 am

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.

Connecting to blog.lzomedia.com... Connected... Page load complete