Pythonでターミナル出力に色を付ける方法
ターミナル上でテキストを色付きで表示したい場面はよくあります。Pythonでは、ANSIエスケープシーケンスを直接扱う以外にも、専用ライブラリを使えば簡単に実現できます。ここでは、代表的なライブラリ「termcolor」を使った方法を紹介します。
Pythonモジュールを使う方法
termcolorモジュールとは
termcolorは、ターミナル出力向けのANSIカラーフォーマットを提供する軽量ライブラリです。まずpipでインストールしておきましょう。
pip install termcolor
主な関数は次の2つです。
- colored(): 色付きの文字列を返します。print()などと組み合わせて使います。
- cprint(): colored()とprint()を1ステップで行い、直接出力できます。
以下は基本的な使用例です。
import sys
from termcolor import colored, cprint
text1 = colored('Hello, Tutorialspoint!', 'blue', attrs=['reverse', 'blink'])
print(text1)
cprint('Hello, Python!', 'blue', 'on_white')
print_red_on_blue = lambda x: cprint(x, 'red', 'on_blue')
print_red_on_blue('Hello, from Data Science!')
print_red_on_blue('Hello, Python!')
for i in range(10):
cprint(i, 'green', end=' ')
cprint("Attention!", 'blue', attrs=['bold'], file=sys.stderr)
コードのポイント
attrs=['reverse', 'blink']のように属性を指定すると、反転表示や点滅などの装飾を追加できます(bold、underlineなども利用可能)。- 第2引数に
'red'、第3引数に'on_blue'を指定すると、「青い背景に赤い文字」というように前景色と背景色を組み合わせられます。 file=sys.stderrを指定すれば、エラー出力(stderr)に対して色付きメッセージを送ることもできます。
実行結果

このコードを実行すると、青色の反転・点滅テキスト、白背景に青文字、青背景に赤文字などが順番に表示され、ループ部分では緑色の数字が横並びに出力されます。
補足:Windows環境ではcoloramaとの併用が便利
古いWindows環境では、ANSIエスケープシーケンスがそのままでは反映されないことがあります。coloramaを併用すると、同じコードがクロスプラットフォームで動作するようになります。
from colorama import init init() # WindowsでのANSIカラー出力を有効化
このようにtermcolor(必要に応じてcoloramaも)を使えば、数行のコードで視認性の高いカラフルなコンソール出力を実現でき、ログの強調表示やCLIツールの見た目向上に役立ちます。
-
Pythonでパターンを出力する方法|三角形・数字・アルファベット・ピラミッドのコード例
Pythonでパターンを出力するには、ネストされた(入れ子構造の)forループを使用します。外側のループで行数を制御し、内側のループで列数を処理します。そしてprint文を工夫することで、目的に応じたさまざまなパターンを作成できます。パターンには、星(アスタリスク)パターン、数字パターン、アルファベットパターンなどがあり、三角形やピラミッドなど、さまざまな形状にも対応できます。パターン出力の基本これらのパターンは、print文を少し変更しながらforループを組み合わせることで出力できます。基本的な考え方はどのパターンも共通しており、違いはごくわずかです。ここからは、代表的なパターンのコードを実
-
Pythonでリストを出力する方法|インデックスの基本から実践的な出力テクニックまで
Pythonのリストとは? Pythonのリスト(list)は、複数の要素をひとつにまとめて管理できるデータ型です。リスト内の各要素は順序を持って格納されており、それぞれの位置(インデックス)を指定することで、任意の要素にアクセスできます。 インデックスは0から始まる リストのインデックスは0から始まる点に注意が必要です。つまり、最初の要素が list[0]、2番目の要素が list[1]、3番目の要素が list[2] に対応します。 例えば、以下のようなリストを考えてみましょう。 numbers = [10, 20, 50, 40] print(numbers[2]) # 出力結果:5