スポンサーリンク

このドキュメントの内容は、以下の通りです。

はじめに

ターミナルでプログラムを実行するときに、ターミナルに出力されるテキスト(文字)に色がついていると、見るべきところがはっきりしてわかりやすくなります。例えば、man のドキュメント、top、grepのマッチした文字列、など、色がつくと格段にわかりやすくなります。

自分で作ったプログラムでも、いろいろメッセージを出しているうちに、大事なメッセージが埋もれていってしまうことがあります。メッセージを削除するのは難しいが、色をつけて、大事なところを強調すれば、少しはわかりやすくなります。

Python には、テキストに色を付ける方法として、エスケープシーケンスを使う方法とモジュールを使う方法があります。モジュールはいろいろあり、 fabric, colorma, termcolor, xtermcolor などがあります。

テキストに色をつける方法


ターミナルのテキストに色をつける方法は、 エスケープシーケンスを使って、色を指定します。

実装方法としては、以下の方法があります。
  • 自分でエスケープシーケンスを出力する
  • モジュールの関数を利用する

モジュールを使う場合


fabric.colors を使う

fabric の fabric.colors を使うと簡単にテキストを色付けできます。

例えば、以下のコードでは、テキストをグリーンにします。
from fabric.colors import green
print(green("OK"))

colorama を使う


colorama を使うと簡単にテキストを色付けできます。
sudo pip install colorama

プログラムの例は以下の通りです。
#! /usr/bin/env python
from colorama import Fore, Back, Style

print(Fore.RED + "Red")
print(Fore.GREEN + "Green")
print(Style.DIM + "dim")
print(Style.RESET_ALL)
print("normal")

定義されている定数は以下の通りです。
Fore: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Back: BLACK, RED, GREEN, YELLOW, BLUE, MAGENTA, CYAN, WHITE, RESET.
Style: DIM, NORMAL, BRIGHT, RESET_ALL

termcolor を使う

sudo pip3 install termcolor

FreeBSDであれば、pkgコマンドでインストールできます。
sudo pkg install py27-termcolor
sudo pkg install py36-termcolor

サンプルコードは以下の通りです。
from termcolor import colored
print(colored('hello', 'red'), colored('world', 'green'))

xtermcolor を使う


sudo pip3 install xtermcolor

xtermcolor コマンドを使用して、 RGB の値から printf で使用する ANSI color コードの文字列に変換できます。
HTMLやCSSを書いている方なら、RGBの ff0000 という文字列になじみが深いのではないでしょうか。
実際のターミナルでは、Example (例) の部分は、赤で表示されます。
$ xtermcolor convert --color=ff0000
#ff0000 is closest to #ff0000 which is ANSI code 196
Example: The quick brown fox jumped over the lazy dog.
printf() string: "\033[38;5;196m%s\033[0m"

以下のように使うこともできます。
from xtermcolor import colorize
print(colorize('Hello world', ansi=196))

マニュアルでエスケープシーケンスを出力する方法


少し面倒ですが、以下のようにすると簡単にテキストを色付けできます。モジュールを追加する必要がないのが、この方法の利点です。
#! /usr/bin/env python
# -*- coding: utf-8 -*-
# vim:fenc=utf-8
class Color:
    BLACK     = '\033[30m'
    RED       = '\033[31m'
    GREEN     = '\033[32m'
    YELLOW    = '\033[33m'
    BLUE      = '\033[34m'
    PURPLE    = '\033[35m'
    CYAN      = '\033[36m'
    WHITE     = '\033[37m'
    END       = '\033[0m'
    BOLD      = '\038[1m'
    UNDERLINE = '\033[4m'
    INVISIBLE = '\033[08m'
    REVERCE   = '\033[07m'

print(Color.GREEN + "Green" + Color.END)
print(Color.RED + "RED" + Color.END)

スポンサーリンク
スポンサーリンク
 
いつもシェア、ありがとうございます!


もっと情報を探しませんか?

関連記事

最近の記事

人気のページ

スポンサーリンク
 

過去ログ

2020 : 01 02 03 04 05 06 07 08 09 10 11 12
2019 : 01 02 03 04 05 06 07 08 09 10 11 12
2018 : 01 02 03 04 05 06 07 08 09 10 11 12
2017 : 01 02 03 04 05 06 07 08 09 10 11 12
2016 : 01 02 03 04 05 06 07 08 09 10 11 12
2015 : 01 02 03 04 05 06 07 08 09 10 11 12
2014 : 01 02 03 04 05 06 07 08 09 10 11 12
2013 : 01 02 03 04 05 06 07 08 09 10 11 12
2012 : 01 02 03 04 05 06 07 08 09 10 11 12
2011 : 01 02 03 04 05 06 07 08 09 10 11 12
2010 : 01 02 03 04 05 06 07 08 09 10 11 12
2009 : 01 02 03 04 05 06 07 08 09 10 11 12
2008 : 01 02 03 04 05 06 07 08 09 10 11 12
2007 : 01 02 03 04 05 06 07 08 09 10 11 12
2006 : 01 02 03 04 05 06 07 08 09 10 11 12
2005 : 01 02 03 04 05 06 07 08 09 10 11 12
2004 : 01 02 03 04 05 06 07 08 09 10 11 12
2003 : 01 02 03 04 05 06 07 08 09 10 11 12

サイト

Vim入門

C言語入門

C++入門

JavaScript/Node.js入門

Python入門

FreeBSD入門

Ubuntu入門

セキュリティ入門

パソコン自作入門

ブログ

トップ


プライバシーポリシー