Blanktar

  1. top
  2. blog
  3. 2013
  4. 05

pythonは標準でtemplateが使えるらしい

本日は小ネタをもう一つ。

pythonの標準ライブラリで簡単なテンプレートエンジンが使えるようです。 いや、エンジンってほど豪華なものでもなさげだけれど。

import string
t = string.Template('test $a, and $b')

t.safe_substitute(a='script', b=123)

みたいにして使える。 結果はtest script, and 123ね。

t.safe_substitute({'a':'script', 'b':123})

としても結果は同じです。

記号をエスケープする時は

t = string.Template('test $a, and $$b')

みたいに$を重ねて書けばいいみたい。

識別用の文字($aとか)は複数文字でも行ける。 他の文字と続けて書きたいとき(スペースを挟みたくないとき)は、

t = string.Template('test $a, and ${and}s')

とすればいいみたい。

ちなみに、string.Templateにunicode型を渡すとunicodeで、str型を渡すとstrで返ってくるようです。

簡単なものであれば、わざわざライブラリ用意せんでもいいかもね。 楽でいいこってす。

参考:7.1. string - 一般的な文字列操作 - Python 2.7ja1 documentation