ターミナルで色をつける

e_c_e_t2011-04-11

bashプロンプトに色をつける要領で、pythonで端末制御シーケンスを使って色をつけてみた
ここを参考にそれぞれの色の名前の関数を作ってみた。

#!/usr/bin/env python
# -*- coding: utf8 -*-
#col.py
#
def getcolor(colorname):
    colors = {
        'clear': '\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'
        }
    def func2(c):
        return colors[colorname] + c + colors['clear']

    return func2

black  = getcolor('black')
red    = getcolor('red')
green  = getcolor('green')
yellow = getcolor('yellow')
blue   = getcolor('blue')
purple = getcolor('purple')
cyan   = getcolor('cyan')
white  = getcolor('white')

a = "this is a test message"
print red(a)
print white(a)
print cyan(a)
print purple("test ") + yellow("message")

実行例は画像の通り。色がついた。嬉しい。
sarやvmstatとか一定の値を超えた場合のみ色つけたり、tail -fで見ている時に注意すべきものにmatchした行だけ色つけたり、とか。使い道はいろいろ多い。