Template是python string提供的一个字符串模板功能。主要用于文本处理
from string import Template s = Template('$who 在 $do') ts = s.substitute(who="张三", do="赏花") print(ts)
说明:模板s中默认以 $ 标识需要替换的变量,在substitute以键值对的格式定义替换变量的值,并且key值需要与模板中的变量名保持一致。
Template有两个定义替换变量的方法:
- substitute:模板所带的keywords必须被全部替换,不然会抛出KeyError异常
- safe_substitute:不会抛出异常,能配对的配对。不能配对的保留原来的值
substitute
演示模板中有未被替换的情况
from string import Template s = Template('$who 在 $do $b') ts = s.substitute(who="张三", do="赏花") print(ts)
safe_substitute
from string import Template s = Template('$who 在 $do $b') ts = s.safe_substitute(who="张三", do="赏花") print(ts)
参数可以为字典
from string import Template d = {"who": "张三", "do": "赏花"} s = Template('$who 在 $do').safe_substitute(d) print(s)
自定义标识符合
模板中默认以 $ 标识需要替换的变量。
可以使用继承的方式自定义标识符
from string import Template class MyTemplate(Template): delimiter = '@' d = {"who": "张三", "do": "赏花"} s = MyTemplate('@who 在 @do').safe_substitute(d) print(s)