colorama ―Pythonでコンソールに色付け

Windows上で使う)Pythonスクリプトで気軽にANSI端末の色を実現するにはどれがいいのかなーと悩んでいた.Windowsでは,いわゆるANSIエスケープシーケンスをprintする方法は(標準環境では)使えず,SetConsoleTextAttributeという拷問のように長い名前のWindows APIを ctypes というFFIモジュール経由で呼ばないといけない.とてもじゃないが「stdoutに適当にprintしてたら量が増えたから大事な部分だけを目立たせたい」程度の動機で出来ることではない.
そこでcolorama.

stdoutを乗っ取って,ANSIエスケープシーケンスが来たら対応するWindows API呼び出しに変換するというアプローチ.stdoutへの出力でパフォーマンスを云々する方が間違ってるので,このアプローチは問題ないと思う.対応しているエスケープシーケンスはfore/background 8色,スタイル +2種類で簡素だが,

私の用途では十分すぎるくらいだ.これ以上を求める人は(GNU Midnight Commander作りたいとか?)もうちっとelaboratedなやつを探してカスタマイズするしかなかろうね.あー,進捗表示とかで一度printした文字を上書きしたいという要求はしばしばあるけど,coloramaだと駄目だな.いじってみようかな.
(ドキュメントのちょっとした誤植を報告したら,すぐに(私の名前を出して)改訂して下さってうれしかったので,私もここで紹介してみる)