使用Template格式化Python字符串的方法

yipeiwu_com6年前Python基础

对Python字符串,除了比较老旧的%,以及用来替换掉%的format,及在python 3.6中加入的f这三种格式化方法以外,还有可以使用Template对象来进行格式化。

from string import Template,可以导入Template类。

实例化Template类需要传入一个Template模板字符串。

class Template(metaclass=_TemplateMetaclass):
  """A string class for supporting $-substitutions."""

  delimiter = '$'
  idpattern = r'[_a-z][_a-z0-9]*'
  flags = _re.IGNORECASE

  def __init__(self, template):
    self.template = template

字符串默认以%作为定界符

# 默认的定界符是$,即会将$之后内容匹配的字符串进行替换
s = Template('hello, $world!')
print(s.substitute(world='python'))
# hello, python!

实例化Template之后,返回对象s,调用对象s的substitute,传入替换的数据,最终返回替换之后的结果。

如果需要对定界符进行修改,可以创建一个Template的子类,在子类中覆盖掉Template的类属性delimiter,赋值为需要重新设定的定界符。

# 可以通过继承Template类的方式进行替换
class CustomerTemplate(Template):
  delimiter = '*'

t = CustomerTemplate('hello, *world!')
print(t.substitute(world='python'))
# hello, python!

上面的例子中,输出和未修改定界符之前是一样的,都是hello, python!

以上这篇使用Template格式化Python字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python实现12306抢票及自动邮件发送提醒付款功能

python实现12306抢票及自动邮件发送提醒付款功能

#写在前面,这个程序我已经弄出来了,但是因为黄牛泛滥以及懒人太多,整个程序的代码就不贴出来了,这里纯粹就是技术交流。 只做技术交流、、、、、 嗯,程序结束后,自己还是得手动付款。 废...

Python堆排序原理与实现方法详解

Python堆排序原理与实现方法详解

本文实例讲述了Python堆排序原理与实现方法。分享给大家供大家参考,具体如下: 在这里要事先说明一下我也是新手,很多东西我了解不是很深入,写算法完全是锻炼自己逻辑能力同时顺带帮助读研的...

详解Python验证码识别

以前写过一个刷校内网的人气的工具,Java的(以后再也不行Java程序了),里面用到了验证码识别,那段代码不是我自己写的:-) 校内的验证是完全单色没有任何干挠的验证码,识别起来比较容易...

解决在Python编辑器pycharm中程序run正常debug错误的问题

解决在Python编辑器pycharm中程序run正常debug错误的问题

初学Python,写了一小段程序,在pycharm中debug一直报错,在网上搜了很久,尝试多种方法后还是没有用。 尝试了很久之后,发现这个问题是由于: 1、程序中有中文注释。 2、程...

Python编译为二进制so可执行文件实例

通过cpython把python的文件转换为二进制文件,达到代码保护的目的 1、下载Cython-0.28.2.tar.gz python setup.py install安装 2、创...