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


Posted in Python onJanuary 22, 2019

对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下函数参数的传递(参数带星号的说明)
Sep 19 Python
浅谈python新手中常见的疑惑及解答
Jun 14 Python
关于Python面向对象编程的知识点总结
Feb 14 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
基于Python实现的ID3决策树功能示例
Jan 02 Python
python在线编译器的简单原理及简单实现代码
Feb 02 Python
python中plot实现即时数据动态显示方法
Jun 22 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
Python爬虫实战之12306抢票开源
Jan 24 Python
django认证系统 Authentication使用详解
Jul 22 Python
django模板获取list中指定索引的值方式
May 14 Python
简单了解Python变量作用域正确使用方法
Jun 12 Python
python实现公司年会抽奖程序
Jan 22 #Python
对python函数签名的方法详解
Jan 22 #Python
python实现大转盘抽奖效果
Jan 22 #Python
Python函数返回不定数量的值方法
Jan 22 #Python
python实现转盘效果 python实现轮盘抽奖游戏
Jan 22 #Python
Python Pillow Image Invert
Jan 22 #Python
python 通过类中一个方法获取另一个方法变量的实例
Jan 22 #Python
You might like
合作指挥官:孟斯克
2020/03/16 星际争霸
PHP 各种排序算法实现代码
2009/08/20 PHP
php set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
php 邮件发送问题解决
2014/03/22 PHP
php结合ajax实现手机发红包的案例
2016/10/13 PHP
PHP使用pdo连接access数据库并循环显示数据操作示例
2018/06/05 PHP
$.ajax json数据传递方法
2008/11/19 Javascript
javascript实现跨域的方法汇总
2015/06/25 Javascript
JavaScript中Window对象的属性及事件
2015/12/25 Javascript
Highcharts使用简例及异步动态读取数据
2015/12/30 Javascript
同步文本框内容JS代码实现
2016/08/04 Javascript
在js中实现邮箱格式的验证方法(推荐)
2016/10/24 Javascript
vue.js的提示组件
2017/03/02 Javascript
javascript中json对象json数组json字符串互转及取值方法
2017/04/19 Javascript
jQuery EasyUI tree增加搜索功能的实现方法
2017/04/27 jQuery
如何使用VuePress搭建一个类型element ui文档
2019/02/14 Javascript
基于Express框架使用POST传递Form数据
2019/08/10 Javascript
vue.js循环radio的实例
2019/11/07 Javascript
javascript 对象 与 prototype 原型用法实例分析
2019/11/11 Javascript
Node.js 在本地生成日志文件的方法
2020/02/07 Javascript
[06:43]DAC2018 4.5 SOLO赛 Maybe vs Paparazi
2018/04/06 DOTA
Python实现简单的代理服务器
2015/07/25 Python
使用pandas读取csv文件的指定列方法
2018/04/21 Python
详解django2中关于时间处理策略
2019/03/06 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
python二进制文件的转译详解
2019/07/03 Python
Python中import导入不同目录的模块方法详解
2020/02/18 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
Brora官网:英国领先的羊绒服装品牌
2019/08/28 全球购物
作风建设剖析材料
2014/10/06 职场文书
国情备忘录观后感
2015/06/04 职场文书
2016年记者节感言
2015/12/08 职场文书
创业计划书之密室逃脱
2019/11/08 职场文书
MySQL中的隐藏列的具体查看
2021/09/04 MySQL