使用模板进行操作
>>> import string
>>> values = {'var':'foo'}
>>> t = string.Template("""
... Variable : $var
... Escape : $$
... Variable in text: ${var}iable
... """)
>>> print('TEMPLATE:', t.substitute(values))
TEMPLATE:
Variable : foo
Escape : $
Variable in text: fooiable
>>>
使用%进行操作
>>> values = {'var':'foo'}
>>> s = """
... Variable : %(var)s
... Escape : %%
... Variable in text: %(var)siable
... """
>>> print('INTERPOLATION:', s % values)
INTERPOLATION:
Variable : foo
Escape : %
Variable in text: fooiable
>>>
$/%分别要写两次完成转义;
模板不考虑参数类型,不提供格式化选项,例如:不能控制使用几位有效数字来表示一个符点数值.
模板也有个优点,通过safe_substitute(),可以避免未能提供模板所需全部参数值时可能产生的异常
>>> import string
>>> values = {'var':'foo'}
>>> t = string.Template("$var is here but $missing is not provided")
>>> try:
... print('substitute() :', t.substitute(values))
... except KeyError as err:
... print('ERROR:', err)
ERROR: 'missing'
>>> print('safe_substitute():', t.safe_substitute(values))
safe_substitute(): foo is here but $missing is not provided