Search code examples
pythonwindowswindows-consoletermcolor

Why does termcolor output control characters instead of colored text in the Windows console?


I just installed termcolor for Python 2.7 on Windows. When I try to print colored text, I get the color codes instead.

from termcolor import colored
print colored('Text text text', 'red')

Here is the result:

Screenshot of the Windows console window with the line: "←31mText text text←[0m"

I obtain the same results on Far Manager and when I tried to run the script as a standalone application.


Solution

  • To make the ANSI colors used in termcolor work with the windows terminal, you'll need to also import/init colorama;

    >>> from termcolor import *
    >>> cprint('hello', 'red')
    ←[31mhello←[0m
    >>> import colorama
    >>> colorama.init()
    >>> cprint('hello', 'red')
    hello                                    <-- in red color
    >>>