Pythonでターミナルのテキストに色をつける方法
スポンサーリンク
このドキュメントの内容は、以下の通りです。
はじめに
ターミナルでプログラムを実行するときに、ターミナルに出力されるテキスト(文字)に色がついていると、見るべきところがはっきりしてわかりやすくなります。例えば、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)
スポンサーリンク
スポンサーリンク
いつもシェア、ありがとうございます!
もっと情報を探しませんか?
関連記事
最近の記事
- パナソニック ジェットウォッシャードルツ EW-DJ61-Wのホースの修理
- LinuxセキュリティモジュールIntegrity Policy Enforcement
- アマゾンのEcho Show 5を買ったのでレビューします
- アマゾンのサイバーマンデーはAlexa Echo Show 5が安い
- Android スマートフォン OnePlus 7T と OnePlus 7の違い
- Android スマートフォン OnePlus 7 をAndroid10にアップデートしてみた
- クレジットカードのバーチャルカードの比較のまとめ
- 活動量計 Xiaomi Mi Band 4を買ってみたのでレビュー
- Android スマートフォン OnePlus 7 のレビュー
- AliExpressでスマートフォンを買い物してみた
- パソコンのホコリ対策 レンジフードフィルターと養生テープ
- 80PLUS GOLDのPC電源ユニットAntec NeoEco 750 Goldのレビュー
- イギリスの付加価値税 VAT は払い戻しを受けられる
- イギリスのロンドンでスーツケースなど荷物を預けられる場所は
- イギリスのロンドンで地下鉄やバスに乗るならオイスターカードを使おう
- イギリスのヒースロー空港からロンドン市内への行き方
- 航空便でほかの航空会社に乗り継ぎがある場合のオンラインチェックイン
- SFC会員がANA便ではなくベトナム航空のコードシェアを試して解ったこと
- ベトナムの入国審査でeチケットの掲示が必要だった話
- シアトルの交通ICカードはオルカカード(Orca)です
人気のページ
- Windows7 IME 辞書ツールで単語の登録に失敗しました
- C言語 popen()でコマンドを実行して出力を読み込む
- Windows7で休止状態にする方法
- CentOS MySQLの起動、停止、再起動
- loggerコマンドでsyslogにエラーを出力する方法
- パソコンパーツの買取をしてくれる店のまとめ
- Java Mapの使い方 get(),put(),remove(),size(),clear()
- 楽天のRポイントカードを作ってみた
- iPhone 5 から iPhone 6 に乗り換えたのでレビュー
- netstatコマンドのステータスの意味
スポンサーリンク
過去ログ
2020 : 01 02 03 04 05 06 07 08 09 10 11 122019 : 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