使用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函数帮助查询小工具
Mar 13 Python
用python删除java文件头上版权信息的方法
Jul 31 Python
Python2中的raw_input() 与 input()
Jun 12 Python
Python通过90行代码搭建一个音乐搜索工具
Jul 29 Python
深入理解Python中的super()方法
Nov 20 Python
python实现拓扑排序的基本教程
Mar 11 Python
对Python 窗体(tkinter)文本编辑器(Text)详解
Oct 11 Python
详解Python 函数如何重载?
Apr 23 Python
python输出决策树图形的例子
Aug 09 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
Python 3.6打包成EXE可执行程序的实现
Oct 18 Python
给 TensorFlow 变量进行赋值的方式
Feb 10 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
php 获取远程网页内容的函数
2009/09/08 PHP
php记录日志的实现代码
2011/08/08 PHP
深入分析PHP引用(&)
2014/09/04 PHP
php字符串分割函数用法实例
2015/03/17 PHP
详解Yii2高级版引入bootstrap.js的一个办法
2017/03/21 PHP
PHP实现随机发扑克牌
2020/04/22 PHP
JS 巧妙获取剪贴板数据 Excel数据的粘贴
2009/07/09 Javascript
JavaScript 字符串乘法
2009/08/20 Javascript
jQuery实战之仿淘宝商城左侧导航效果
2011/04/12 Javascript
关于图片按比例自适应缩放的js代码
2011/10/30 Javascript
JavaScript中instanceof与typeof运算符的用法及区别详细解析
2013/11/19 Javascript
JavaScript字符串对象charAt方法入门实例(用于取得指定位置的字符)
2014/10/17 Javascript
javascript html5 canvas实现可拖动省份的中国地图
2016/03/11 Javascript
jQuery中选择器的基础使用教程
2016/05/23 Javascript
完美解决IE9浏览器出现的对象未定义问题
2016/09/29 Javascript
jQuery实现字体颜色渐变效果的方法
2017/03/29 jQuery
Webpack之tree-starking 解析
2018/09/11 Javascript
vue基础之事件简写、事件对象、冒泡、默认行为、键盘事件实例分析
2019/03/11 Javascript
使用Three.js实现太阳系八大行星的自转公转示例代码
2019/04/09 Javascript
解决Layui当中的导航条动态添加后渲染失败的问题
2019/09/25 Javascript
Python3.2中Print函数用法实例详解
2015/05/19 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
flask框架路由常用定义方式总结
2019/07/23 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
python安装后的目录在哪里
2020/06/21 Python
理肤泉俄罗斯官网:La Roche-Posay俄罗斯
2018/07/24 全球购物
德国健康生活方式网上商店:Landkaufhaus Mayer
2019/03/12 全球购物
北美最大的零售退货翻新商:VIP Outlet
2019/11/21 全球购物
What's the difference between an interface and abstract class? (接口与抽象类有什么区别)
2012/10/29 面试题
C#笔试题
2015/07/14 面试题
西双版纳导游词
2015/02/03 职场文书
2020年元旦晚会策划书模板
2019/12/30 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
Java8中Stream的一些神操作
2021/11/02 Java/Android
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
Android学习之BottomSheetDialog组件的使用
2022/06/21 Java/Android