[Q] Printing color strings on stdout without using escape sequences ?

Michael Hudson mwh at python.net
Fri Nov 16 06:39:30 EST 2001


Ivan DUTKA-MALEN <dutka at edf.fr> writes:

> Hello,
> 
> for my application to be a bit more friendly, I want to show some
> colored strings on the standard output but I don't want to use ugly
> escape sequence like '\033[1m;' or so...
> 
> I'd prefer use a module (if one exists) that encapsulate all those
> things and that allows me to be portable on various Unix-like systems
> (especialy Linux, Solaris, HP-UX, IRIX).
> Does anyone know such a module ?
> 
> For information, I tried to use curses but I think it doesn't make
> what I want in the sense that it uses the full screen and I just want
> to use the standard output stream. I may be wrong and I surely misuse
> it. Some help will be much appreciated :-)).

You can use bits of the curses module -- setupterm, tigetstr, tparm,
putp, specifically.

Try this:

>>> import curses
>>> curses.setupterm()
>>> curses.putp(curses.tparm(curses.tigetstr("setaf"), 1)); \
... print "this is in red"
this is in red

You'll need Python 2.1 or newer, and you'll probably be wanting to
wrap this up in something nicer.

HTH,
M.

-- 
  The meaning of "brunch" is as yet undefined.
                                             -- Simon Booth, ucam.chat



More information about the Python-list mailing list