[Python] コンソール出力に色をつける

概要

ANSIエスケープシーケンスを使って、コンソールプログラムで出力する文字に色をつける方法を紹介します。

実装

以下はで文字を出力するプログラムです。
緑と赤は成功や失敗を表すときによく使います。

def color(text: str, code: int, bold: bool = False):
    prefix = ''
    if bold:
        prefix += '\033[1m'
    prefix += f'\033[{code}m'
    return prefix + text + '\033[0m'


def red(text, bold=False):
    return color(text, 31, bold)


def green(text, bold=False):
    return color(text, 32, bold)


if __name__ == '__main__':
    print(green('success'))
    print(red('failure'))

色はANSIエスケープシーケンスで指定します。詳しくは ANSI escape code – Wikipedia#Colors を参照してください。

文字色背景色
3040
3141
3242
3343
3444
マゼンタ3545
シアン3646
3747
カラーコード抜粋

動作確認

以下は実行結果です。ちゃんと色がついています。

コメントする