ひろこま Hack Log

プログラミングや機械学習などの知識を記録・共有します

pythonで色付きのprintをする方法

f:id:twx:20190322004925j:plain
色付きの出力をしよう

ここでは、pythonで色付きの出力をする方法をご紹介します。

以下のような色付きprint関数cprintを作りました。

class PrintColor:
    END = '\033[0m'
    BLACK = '\033[30m'
    RED = '\033[31m'
    GREEN = '\033[32m'
    YELLOW = '\033[33m'
    BLUE = '\033[34m'
    PURPLE = '\033[35m'
    CYAN = '\033[36m'
    WHITE = '\033[37m'
    DEFAULT = '\033[39m'

def cprint(*args, color='DEFAULT'):
    if color == 'BLACK':
        print(PrintColor.BLACK, end='')
    elif color == 'RED':
        print(PrintColor.RED, end='')
    elif color == 'GREEN':
        print(PrintColor.GREEN, end='')
    elif color == 'YELLOW':
        print(PrintColor.YELLOW, end='')
    elif color == 'BLUE':
        print(PrintColor.BLUE, end='')
    elif color == 'PURPLE':
        print(PrintColor.PURPLE, end='')
    elif color == 'CYAN':
        print(PrintColor.CYAN, end='')
    elif color == 'WHITE':
        print(PrintColor.WHITE, end='')
    elif color == 'DEFAULT':
        print(PrintColor.DEFAULT, end='')
    print(*args, end='')
    print(PrintColor.END)

if __name__ == '__main__':
    import numpy as np
    cprint('The only way to do great work is to love what you do.', color='DEFAULT')
    cprint('If you haven’t found it yet, keep looking.', color='BLACK')
    cprint('Don’t settle.', color='RED')
    cprint(1, 2, 'Fizz', 4, 'Buzz', 'Fizz', 7, 8, color='GREEN')
    cprint([[1,2],[3,4]], color='YELLOW')
    cprint(list, dict, str, color='BLUE')
    cprint(np.array([[1,2],[3,4]]), color='PURPLE')
    cprint('好了那我该走了', color='CYAN')
    cprint({'foo': 42}, color='WHITE')

試しに実行してみます

f:id:twx:20190322005113p:plain
出力結果!

文字列もタプルもnumpy配列も綺麗に色付きで出力できました! 本日は「pythonで色付きのprintをする方法」をご紹介しました。良い記事だと思っていただいた方は、以下の「★+」ボタンのクリック、SNSでのシェア、「読者になる」ボタンのクリックをお願いします。 それではまたー!

Koma Hirokazu 's Hacklog ―― Copyright © 2018 Koma Hirokazu