ターミナルに色付きのテキストを印刷するにはどうすればいいですか? 質問する

ターミナルに色付きのテキストを印刷するにはどうすればいいですか? 質問する

Python でターミナルに色付きのテキストを出力するにはどうすればよいですか?

ベストアンサー1

これは、使用しているプラ​​ットフォームによって異なります。最も一般的な方法は、ANSIエスケープシーケンスを出力することです。簡単な例として、次のPythonコードをご覧ください。Blender ビルド スクリプト:

class bcolors:
    HEADER = '\033[95m'
    OKBLUE = '\033[94m'
    OKCYAN = '\033[96m'
    OKGREEN = '\033[92m'
    WARNING = '\033[93m'
    FAIL = '\033[91m'
    ENDC = '\033[0m'
    BOLD = '\033[1m'
    UNDERLINE = '\033[4m'

このようなコードを使用するには、次のようにします。

print(bcolors.WARNING + "Warning: No active frommets remain. Continue?" + bcolors.ENDC)

または、Python 3.6+ の場合:

print(f"{bcolors.WARNING}Warning: No active frommets remain. Continue?{bcolors.ENDC}")

これはOS X、Linux、Windowsを含むUnixで動作します(ただし、アンシコン、またはWindows 10では、VT100エミュレーション)。色の設定、カーソルの移動などを行うための ANSI コードがあります。

これを複雑にするつもりなら(ゲームを書いているならそうなるでしょうが)、"呪い「モジュール」は、この複雑な部分の多くを処理します。Python Curses の使い方良い紹介です。

拡張ASCIIを使用していない場合(つまり、PC上でない場合)、127未満のASCII文字しか使用できず、ブロックには「#」または「@」がおそらく最適です。端末がIBMを使用していることを確認できる場合は、拡張ASCII文字セット、さらに多くのオプションがあります。文字 176、177、178、および 219 は「ブロック文字」です。

「Dwarf Fortress」などの最近のテキストベースのプログラムでは、テキストモードをグラフィカルモードでエミュレートし、古典的なPCフォントの画像を使用します。これらのビットマップのいくつかは、ドワーフ要塞ウィキ見る (ユーザーが作成したタイルセット)。

テキストモードデモコンテストテキスト モードでグラフィックを実行するためのリソースがさらにあります。

おすすめ記事