Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonを使用してLinuxターミナルでフォーマットされたテキスト


このセクションでは、Linuxターミナルでフォーマットされたテキストを印刷する方法を説明します。フォーマットすることで、テキストの色、スタイル、およびいくつかの特別な機能を変更できます。

Linuxターミナルは、フォーマット、色、その他の機能を制御するために、いくつかのANSIエスケープシーケンスをサポートしています。したがって、テキストにいくつかのバイトを埋め込む必要があります。したがって、端末がそれらを解釈しようとするとき、それらのフォーマットは効果的です。

ANSIエスケープシーケンスの一般的な構文は次のようになります-

\x1b[A;B;C
  • Aはテキストの書式設定スタイルです
  • Bはテキストの色または前景色です
  • Cは背景色です

A、B、Cにはいくつかの事前定義された値があります。これらは以下のようなものです。

テキストの書式設定スタイル(タイプA)

スタイル
1 太字
2 かすかな
3 斜体
4 下線
5 点滅
6 最初の点滅
7 リバース
8 非表示
9 取り消し線

タイプBおよびCのカラーコード。

値(c) スタイル
Values(B)
30 40
31 41
32 42
33 43 黄色
34 44
35 45 マゼンタ
36 46 シアン
37 47

サンプルコード

class Terminal_Format:
   Color_Code = {'black' :0, 'red' : 1, 'green' : 2, 'yellow' : 3, 'blue' : 4, 'magenta' : 5, 'cyan' : 6, 'white' : 7}
   Format_Code = {'bold' :1, 'faint' : 2, 'italic' : 3, 'underline' : 4, 'blinking' : 5, 'fast_blinking' : 6, 'reverse' : 7, 'hide' : 8, 'strikethrough' : 9}
   def __init__(self): #reset the terminal styling at first
      self.reset_terminal()
   def reset_terminal(self): #Reset the properties
      self.property = {'text_style' : None, 'fg_color' : None, 'bg_color' : None}
      return self
   def config(self, style = None, fg_col = None, bg_col = None): #Set all properties
      return 
   self.reset_terminal().text_style(style).foreground(fg_col).background(bg_col)
   def text_style(self, style): #Set the text style
      if style in self.Format_Code.keys():
         self.property['text_style'] = self.Format_Code[style]
      return self
   def foreground(self, fg_col): #Set the Foreground Color
      if fg_colinself.Color_Code.keys():
         self.property['fg_color'] = 30 + self.Color_Code[fg_col]
      return self
   def background(self, bg_col): #Set the Background Color
      if bg_colinself.Color_Code.keys():
         self.property['bg_color'] = 40 + self.Color_Code[bg_col]
      return self
   def format_terminal(self, string):
      temp = [self.property['text_style'],self.property['fg_color'], self.property['bg_color']]
      temp = [ str(x) for x in temp if x isnotNone ]
      # return formatted string
   return'\x1b[%sm%s\x1b[0m' % (';'.join(temp), string) if temp else string
   def output(self, my_str):
      print(self.format_terminal(my_str))

出力

<中央> Pythonを使用してLinuxターミナルでフォーマットされたテキスト

スクリプトを実行するには、ターミナルでPythonシェルを開き、その後、スクリプトからクラスをインポートします。

そのクラスのオブジェクトを作成した後、目的の結果が得られるように構成する必要があります。端末設定を変更するたびに、config()関数を使用して構成する必要があります。


  1. Pythonを使用したコンウェイのライフゲーム?

    1970年頃の英国の数学者は、彼の「ライフゲーム」を作成しました。これは基本的に、生物のコロニーの混沌とし​​た、しかしパターン化された成長を描いた一連のルールです。 「GameofLife」は、「生きている」細胞と「死んでいる」細胞で構成される2次元グリッドです。 人生ゲームのルール 人口過多 :細胞が3つ以上の生きている細胞に囲まれている場合、細胞は死にます(オフ)。 静的 :細胞が2つまたは3つの生きている細胞に囲まれている場合、その細胞は生きています。 過少人口 :細胞が2つ未満の生きている細胞に囲まれている場合、細胞は死にます(オフになります)。 複製 :死ん

  2. PythonでのCX_Freezeの使用

    時々私たちは非常にエキサイティングな何か違うものを作りたいと感じます、そして人間の性質によれば、私たちはいつもそれを共有するのが大好きです。 Pythonもそれらの願いを満たします。 Pythonを使用して、Pythonプログラムを友人と共有したい場合は、それを行うことができます。必要なのは、マシンのプログラムで使用されるすべてのモジュールに同じバージョンのPythonをインストールすることだけです。 まず、 pip install CX_Frezzeを使用してCX_Freezeモジュールをインストールする必要があります コマンドプロンプトのコマンド。 最初のステップは、この割り当て、