logo

Python ターミナルでカラーを印刷する

この記事では、 Pythonで色付きのテキストを印刷する方法 数メートルを使って 色付きのテキストを端末に出力するメソッド Pythonで。

これを行う最も一般的な方法は次のとおりです。

    colorama モジュールの使用 termcolor モジュールの使用 Python での ANSI コードの使用

方法 1: colorama モジュールを使用してカラーテキストを印刷する

コロラマモジュール です カラー テキストのクロスプラットフォーム印刷は、ANSI エスケープ シーケンスに対する Colorama の定数短縮表現を使用して実行できます。



例 1: 緑の背景に赤いテキストを印刷する Python プログラム。

Python3




from> colorama>import> Fore, Back, Style> print>(Fore.RED>+> 'some red text'>)> print>(Back.GREEN>+> 'and with a green background'>)> print>(Style.DIM>+> 'and in dim text'>)> print>(Style.RESET_ALL)> print>(>'back to normal now'>)>

>

>

出力:

例 2: 赤い背景に緑色のテキストを印刷する Python プログラム。

Python3




from> colorama>import> init> from> termcolor>import> colored> init()> print>(colored(>'Hello, World!'>,>'green'>,>'on_red'>))>

>

>

出力:

方法 2: termcolor モジュールを使用してカラー テキストを印刷する

termcolorモジュール は、端末での出力用の ANSII カラー書式設定用の Python モジュールです。

例: 色付きのテキストと背景を印刷する Python プログラム。

Python3




import> sys> from> termcolor>import> colored, cprint> text>=> colored(>'Hello, World!'>,>'red'>, attrs>=>[>'reverse'>,>'blink'>])> print>(text)> cprint(>'Hello, World!'>,>'green'>,>'on_red'>)> def> print_red_on_cyan(x):>return> cprint(x,>'red'>,>'on_cyan'>)> print_red_on_cyan(>'Hello, World!'>)> print_red_on_cyan(>'Hello, Universe!'>)> for> i>in> range>(>10>):> >cprint(i,>'magenta'>, end>=>' '>)> cprint(>'Attention!'>,>'red'>, attrs>=>[>'bold'>],>file>=>sys.stderr)>

>

>

出力:

方法 3: Python で ANSI コードを使用してカラー テキストを印刷する

カラーテキストを印刷する最も一般的な方法は、印刷することです。 ANSIエスケープシーケンス 直接。これは、次のようなさまざまな形式で配信できます。

例 1: 呼び出す関数を構築する

特定の色の名前付き関数を呼び出して、関連する ANSI エスケープ シーケンスを実行する関数を構築できます。以下は、色付きのテキストと背景を印刷するための Python プログラムです。

Python3




def> prRed(skk):>print>(>' 33[91m {} 33[00m'> .>format>(skk))> def> prGreen(skk):>print>(>' 33[92m {} 33[00m'> .>format>(skk))> def> prYellow(skk):>print>(>' 33[93m {} 33[00m'> .>format>(skk))> def> prLightPurple(skk):>print>(>' 33[94m {} 33[00m'> .>format>(skk))> def> prPurple(skk):>print>(>' 33[95m {} 33[00m'> .>format>(skk))> def> prCyan(skk):>print>(>' 33[96m {} 33[00m'> .>format>(skk))> def> prLightGray(skk):>print>(>' 33[97m {} 33[00m'> .>format>(skk))> def> prBlack(skk):>print>(>' 33[98m {} 33[00m'> .>format>(skk))> prCyan(>'Hello World, '>)> prYellow(>'It's'>)> prGreen(>'Geeks'>)> prRed(>'For'>)> prGreen(>'Geeks'>)>

>

>

出力:


例 2: 色のクラスを構築する

背景色と前景色を割り当てるクラスを作成し、呼び出します。以下は、色付きのテキストと背景を印刷するための Python プログラムです。

Python3




class> colors:> '''Colors class:reset all colors with colors.reset; two> sub classes fg for foreground> and bg for background; use as colors.subclass.colorname.> i.e. colors.fg.red or colors.bg.greenalso, the generic bold, disable,> underline, reverse, strike through,> and invisible work with the main class i.e. colors.bold'''> reset>=> ' 33[0m'> bold>=> ' 33[01m'> disable>=> ' 33[02m'> underline>=> ' 33[04m'> reverse>=> ' 33[07m'> >strikethrough>=> ' 33[09m'> >invisible>=> ' 33[08m'> >class> fg:> >black>=> ' 33[30m'> >red>=> ' 33[31m'> >green>=> ' 33[32m'> >orange>=> ' 33[33m'> >blue>=> ' 33[34m'> >purple>=> ' 33[35m'> >cyan>=> ' 33[36m'> >lightgrey>=> ' 33[37m'> >darkgrey>=> ' 33[90m'> >lightred>=> ' 33[91m'> >lightgreen>=> ' 33[92m'> >yellow>=> ' 33[93m'> >lightblue>=> ' 33[94m'> >pink>=> ' 33[95m'> >lightcyan>=> ' 33[96m'> >class> bg:> >black>=> ' 33[40m'> >red>=> ' 33[41m'> >green>=> ' 33[42m'> >orange>=> ' 33[43m'> >blue>=> ' 33[44m'> >purple>=> ' 33[45m'> >cyan>=> ' 33[46m'> >lightgrey>=> ' 33[47m'> print>(colors.bg.green,>'SKk'>, colors.fg.red,>'Amartya'>)> print>(colors.bg.lightgrey,>'SKk'>, colors.fg.red,>'Amartya'>)>

>

Javaは文字列を整数に変換します

>

出力:

例 3: 関数の反復

反復および自己生成の ANSI エスケープ シーケンス、関数を設計できます。以下は、色付きのテキストと背景を印刷するための Python プログラムです。

Python3




def> print_format_table():> >'''> >prints table of formatted text format options> >'''> >for> style>in> range>(>8>):> >for> fg>in> range>(>30>,>38>):> >s1>=> ''> >for> bg>in> range>(>40>,>48>):> >format> => ';'>.join([>str>(style),>str>(fg),>str>(bg)])> >s1>+>=> 'x1b[%sm %s x1b[0m'> %> (>format>,>format>)> >print>(s1)> >print>(>' '>)> print_format_table()>

>

>

出力: