Python : 差し込み処理(format)で改行を含んだ複数行のテキストに対して差し込んでみる

 本題としては、複数行のテキストを用意してそこに対して差し込み処理をする話になるのですが、まず差し込み処理とはなんぞやということから説明していきます。話としては一行のテキストでも複数行のテキストでもformatメソッドで同じ処理をするだけです。ただPythonで複数行のテキストを扱う方法をちょくちょく忘れてしまうので、自分用のメモも兼ねて説明していきます。

Pythonのformatメソッドによるテキスト差し込み

 テキストに対して他のテキストや数値を差し込むには、formatメソッドを用いることが出来ます。
 差し込むという処理自体を説明すると、例えば
「ここに{}を差し込む」
と用意してあるテキストの{}の中に"テキスト"という文字列を差し込むと
「ここにテキストを差し込む」
となります。

他には
「光の速度は {} m/sです」
というテキストに"2.99792458"という数値を差し込むと
「光の速度は 2.99792458 m/sです」
となります。

差し込み処理は例えば定型文に対してデータベースにある住所や名前を入れて、一度にたくさんの同じような文面を作るときによく用いられます。メールのアドレス帳に登録してある人に名前などを挿入しながら、同じ文面を作成してメールを送る場合などがそうですね。

formatメソッドによる差し込み

 Pythonではformatメソッドにより差し込み処理が行えます。簡単に説明すると、
text = "ここに{}を差し込み"
print(text.format("テキスト"))

という形になります。

 差し込み方はこれ以外に、複数差し込む場合に差し込み位置を指定したり、ディクショナリから差し込むなどいろいろな型式を用いることが出来ます。詳しく説明すると長くなってしまうので、ここでの説明はこんな程度にしておきます。

改行を含んだ複数行のテキストに対する差し込み

 さて、ここから本題に入るわけですが、冒頭に話したように複数行のテキストでも一行のテキストと同じようにformatメソッドで差し込みが行えます。

複数行のテキスト

 Pythonで1つの文字列変数に複数行を入れる場合は3重クォーテーションを用います。3重クォーテーションを用いると、改行も含んで変数に入れることが出来ます。クォーテーションはシングルクォート、ダブルクォートのいずれも用いることが出来ます。
例えば3重クォーテーションを用いて複数行を変数に入れるには次のようになるわけです。
text = """ test
aaa
bbb
ccc
ddd
"""


formatメソッドで複数行テキストに差し込み

 さて話の準備は整ったので、最後にformatメソッドを用いた例を示してお終いにしようと思います。例は以下の通り。
text = """{} aaa
bbb {} ccc
ddd eee {}.
Number 1/3 = {:.6f}
"""

print(text.format("Start","Middle","END", 1.0/3.0))


このスクリプトを実行すると以下の結果が出力されます。
Start aaa
bbb Middle ccc
ddd eee END.
Number 1/3 = 0.333333

コメント

スポンサーリンク


このブログの人気の投稿

gnuplotでプロットなどの色をcolornameの指定で変更する

catコマンドの出力を行番号付きにするためのコマンドラインオプション(-n, -b)

Ubuntu Softwareが起動しないのでいろいろと調べてみる(Ubuntu 20.04.1 LTS)

gnuplot : グラフにグリッド線を描く方法(set grid)

gnuplot : プロット画像のサイズ指定について(set sizeとの違い)