0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ターミナル出力を鮮やかに!PythonのColoramaでマルチプラットフォームな色付けを実現する

0
Last updated at Posted at 2026-05-08

はじめに

Pythonでコマンドラインツール(CLI)を作成していると、ログの重要度(Success, Error, Warning)を視覚的に分かりやすくするために、テキストに色を付けたい場面が多々あります。

しかし、色付けに使用する「ANSIエスケープシーケンス」は、伝統的にUnix系(Linux/macOS)とWindowsで挙動が異なり、クロスプラットフォームな対応が面倒でした。これを一挙に解決してくれるのが Colorama です。

1. Coloramaとは?

Coloramaは、ターミナル出力の文字色や背景色を簡単に変更できるライブラリです。

最大の特徴はOS間の差異を吸収してくれる点にあります。Windows環境でも特別な設定なしにANSIエスケープシーケンスを解釈できるようにラップしてくれます。

2. インストール

PyPIから簡単にインストールできます。

pip install colorama

3. 基本的な使い方

Coloramaには主に3つのクラスがあります。

  • Fore: 前景色(文字色)
  • Back: 背景色
  • Style: 文字のスタイル(明るさやリセット)
from colorama import init, Fore, Back, Style

# Windows環境での動作を保証するために必ず呼び出す
init()

print(Fore.RED + "これは赤文字です")
print(Fore.GREEN + "これは緑文字です")
print(Back.YELLOW + Fore.BLACK + "背景が黄色で文字が黒です")

# Style.RESET_ALL を使わないと、以降の出力も色が引き継がれてしまう
print(Style.RESET_ALL + "ここから通常の出力に戻ります")

4. 便利な設定:autoreset

色の指定を毎回リセット(RESET_ALL)するのは手間ですし、忘れるとターミナル全体の色がおかしくなってしまいます。init() の引数に autoreset=True を渡すと、print ごとに自動でリセットしてくれます。

from colorama import init, Fore

# 自動リセットを有効化
init(autoreset=True)

print(Fore.CYAN + "この行だけシアン色になります")
print("この行は自動的にデフォルト色に戻っています")

5. 主な定数一覧

よく使われる色は以下の通りです。

種類 定数
色 (Fore/Back) BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE
スタイル (Style) BRIGHT, DIM, NORMAL, RESET_ALL

6. 実践的な活用例

セキュリティツールや自動化スクリプトで、ステータスを分かりやすく表示する例です。

import time
from colorama import init, Fore, Style

init(autoreset=True)

def log_status(status, message):
    if status == "success":
        print(f"[{Fore.GREEN}+{Fore.RESET}] {message}")
    elif status == "error":
        print(f"[{Fore.RED}-{Fore.RESET}] {message}")
    elif status == "info":
        print(f"[{Fore.BLUE}*{Fore.RESET}] {message}")

log_status("info", "スキャンを開始します...")
time.sleep(1)
log_status("success", "ターゲットの脆弱性を特定しました")
log_status("error", "接続がタイムアウトしました")

まとめ

Coloramaは非常に軽量で依存関係もなく、CLIツールのユーザー体験(UX)を向上させるための必須級ライブラリです。特に、作成したツールを他のOSを利用するユーザーに配布する可能性がある場合は、とりあえず init() しておくだけでも価値があります。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?