世紀末の墓

お気持ち.log

IT系寄りの雑記

pythonから書式制御文字でターミナルに色付けする

pythonから標準出力への色付けって、調べるとライブラリ使う系パリピ記事()がたくさんでてくるんですが、書式制御文字でもやれるで^^ということを紹介しようと思う。

まえがき

まあC/Ubuntuでやってる人いたから、python/Linux Mintでやろうっていうだけなんですがね。
www.mm2d.net
エスケープコードの細かい話はこの方の記事読んだら最強になれます。


本題

文字に色付け

print("\033[38;5;50mHello!\033[0m")

ってやると
f:id:silmin:20171204221826p:plain
って感じのがでてくるかな?

256色のリストを出してみる

for i in range(256): 
  print("\033[38;5;%dm%3d\033[0m " % (i,i), end="")
  if i % 16 == 15: print()

これで15ずつの表ちっくなのが出てくるかと思う。
↓こんなの
f:id:silmin:20171204220946p:plain

この値にそれぞれの色が対応してるって感じですね。
上の記事の人は16進でやってたので僕は10進でやりました。


まとめ

上の記事がぐう有能で正直あまり書くことなかったなら書くな
まあ今後その記事を発見できるかわからんので、メモってことで。
つかリンク貼ってるなら見失わないのでは

エスケープコード諸々は基本的に言語に関係なく使える(ターミナル側が解釈する)ので、ライブラリとかなくても全然色付け可能やで^^