[Python] コマンドプロンプトでtermcolorが文字化けする時

windows10のコマンドプロンプトでpythonのtermcolorで出力に色をつけようとすると、色ではなく文字化けが発生します。

termcolor は unix で使われる ANSIエスケープシーケンスというものを使うためで、これが windows のコマンドプロンプトには対応していないためです。

termcolor 1.1.0

colorama は、出力文字で ANSIエスケープシーケンス を見つけると、windows に対応した形にコードを変換してくれるモジュールです。

出力に色を付けたい場合(その他、ANSIカラーをターミナルで使いたい場合)は、coloramaをimportしてinit()すれば可能になります。

colorrama は pip install colorama でインストールできます。

colorama 0.4.3

import termcolor

# hello 文字化けする
print(termcolor.colored('hello', 'red'))


import colorama

colorama.init()
# hello 文字化けせず、赤色で出力される。
print(termcolor.colored('hello', 'red'))