BlankTar

about | blog | works | photo

本日は小ネタをもう一つ。
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
< pythonのソースをweb越しにimportしてみる pythonのdoctestの使い方とか >