【string】字符串模板、拼接、格式
作者:互联网
在python中Template可以将字符串的格式固定下来,重复利用。
1、使用 string.Template 拼接时,要在名字前加前缀$来标识变量(例如, $var)
如果有必要区分变量和周围的文本,可以用大括号包围变量(例如,${va r})
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
2、使用%操作符的类似字符串拼接
s1 = """ Variable : %(var)s Escape : %% Variable in text: %(var)siable """ print('TERPOLATION', s1 % values)
输出结果:
TERPOLATION Variable : foo Escape : % Variable in text: fooiable
3、使用 str. format ()格式
s2 = """ Variable : {var} Escape : {{}} Variable in text: {var}iable """ print('FORMAT: ', s2.format(**values))
输出结果:
FORMAT: Variable : foo Escape : {} Variable in text: fooiable模板与字符串拼接或格式化的一个关键区别是,它不考虑参数的类型 值会转换为字符串,再将字符串插入结果 这里没有提供格式化选项 例如,没有办法控制使用几位有效数字来表示一个浮点值 不过,这也有一个好处,通过使用 safe substitute() 方法,可以避免未能向模板提供所需的所有参数值时可能产生的异常
values = {'var': 'foo'} t = string.Template("$var is here but $missing is not provided") try: print('substitute() :', t.substitute(values)) except KeyError as e: print('ERROR:', str(e)) print('safe_substitute(): ', t.safe_substitute(values))
输出结果:
ERROR: 'missing' safe_substitute(): foo is here but $missing is not provided由于 values 字典中没有 missing 的值,所以 substitute() 会产生一个 KeyError safe_substitute() 则不同,它不会抛出这个错误,而是会捕获这个错误并保留文本中的变量表达式 换种说法就是使用substitute(values)的话,那t中的两个变量都要在values中存在 用safe_substitute()时,当t中的两个变量有两个,但是values中只有一个变量的值的话,那另一个变量它会默认为字符串显示
标签:string,text,safe,var,拼接,values,模板,Variable,substitute 来源: https://www.cnblogs.com/fjy49/p/14425831.html