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フォントの画像を使用します。これらのビットマップのいくつかは、ドワーフ要塞ウィキ見る (ユーザーが作成したタイルセット)。
のテキストモードデモコンテストテキスト モードでグラフィックを実行するためのリソースがさらにあります。