Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用。可以用于自动生成测试用例。

1

2

3

4

from string import Template

= Template("there are ${howmany} ${lang} Quotation symbols")

print s.substitute(lang='Python',howmany=3)

>>>there are 3  Python Quotation symbols

用法很简单,先生成一个模板实例s,然后调用替换函数substitute()将模板中的两个地方替换掉。替换的内容是通过字典对调用的,所以下面(lang='Python',howmany=3)出现的顺序可以不用严格的和模板中的一样。当然不用括号也是可以的。

1

2

3

4

from string import Template

= Template("there are $howmany $lang Quotation symbols")

print s.substitute(lang='Python',howmany=3)

>>>there are 3  Python Quotation symbols

注意:在使用${howmany} ${lang}时候,括号里的内容和括号要紧贴着,不然会报错。

1

2

3

4

5

6

7

8

9

10

11

12

13

from string import Template

= Template("there are ${ howmany } ${lang} Quotation symbols")

print s.substitute(lang='Python',howmany=3)

>>>Traceback (most recent call last):

  File "E:/�������/201703/DeepLearning/neural-networks-and-deep-learning-master/src/validation.py", line 39in <module>

    print s.substitute(lang='Python',howmany=3)

  File "C:\Users\wangxin\Anaconda2\lib\string.py", line 176in substitute

    return self.pattern.sub(convert, self.template)

  File "C:\Users\wangxin\Anaconda2\lib\string.py", line 173in convert

    self._invalid(mo)

  File "C:\Users\wangxin\Anaconda2\lib\string.py", line 146in _invalid

    (lineno, colno))

ValueError: Invalid placeholder in string: line 1, col 11

当然在使用substitute()的时候,对应的关键字和值都要给出,不然会报错。

1

2

3

4

5

6

7

8

9

10

11

from string import Template

= Template("there are ${ howmany } ${lang} Quotation symbols")

print s.substitute(lang='Python')

>>>Traceback (most recent call last):

  File "E:/�������/201703/DeepLearning/neural-networks-and-deep-learning-master/src/validation.py", line 39in <module>

    print s.substitute(lang='Python')

  File "C:\Users\wangxin\Anaconda2\lib\string.py", line 176in substitute

    return self.pattern.sub(convert, self.template)

  File "C:\Users\wangxin\Anaconda2\lib\string.py", line 166in convert

    val = mapping[named]

KeyError: 'howmany'

使用safe_substitute()可以避免报错.

1

2

3

4

from string import Template

= Template("there are ${howmany} ${lang} Quotation symbols")

print s.safe_substitute(lang='Python')

>>>there are ${howmany} Python Quotation symbols

Python中Template使用相关推荐

  1. python中template是什么意思啊_Python中Template使用的一个小技巧

    Python中Template是string中的一个类,可以将字符串的格式固定下来,重复利用. from string import Template s = Template("there ...

  2. python中用于标识字符串的定界符_001.python-基础-Template的字符串格式化

    Template是Python string模板中定义的一种字符串类型. 用途:用于字符串替换操作. 默认的定界符:$. # -*- coding: utf-8 -*- from string imp ...

  3. python中template_python Template中substitute()的使用

    在docker的harbor部署的过程中,prepare 这个脚本就是根据harbor.cfg的配置变量,然后根据template生成最终的配置文件 在python中Template可以将字符串的格式 ...

  4. python中查找字符串_python中字符串操作--截取,查找,替换

    python中,对字符串的操作是最常见的,python对字符串操作有自己特殊的处理方式. 字符串的截取 python中对于字符串的索引是比较特别的,来感受一下: s = '123456789' #截取 ...

  5. 第五章 python中正则表达式的使用

    第一节    正则表达式的一些介绍 1)掌握正则表达式的案例 2)写一个小爬虫 3)正则表达式(或RE)是一个小型的.高度专业化的编程语言,(在python中)它内嵌在python中,并通过re模块实 ...

  6. python中append函数合并列表且列表内数字从高到低_35个高级Python知识点总结

    No.1 一切皆对象 众所周知,Java中强调"一切皆对象",但是Python中的面向对象比Java更加彻底,因为Python中的类(class)也是对象,函数(function) ...

  7. python软件是干什么用的-python中的django是做什么的

    Django是什么? Django是一个基于Python的Web应用框架.它与Python的另外一个Web 框架 Flask最大的区别是,它奉行 "包含一切" 的哲学.该理念即为: ...

  8. Python中如何写控制台进度条的整理

    本文实例讲述了Python显示进度条的方法,是Python程序设计中非常实用的技巧.分享给大家供大家参考.具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个\n ...

  9. 【思维导图】Python中常用的8种字符串操作

    文章末尾获取思维导图高清源文件 拼接字符串 使用"+"可以对多个字符串进行拼接 语法格式:str1 + str2 >>> str1 = "aaa&quo ...

最新文章

  1. 【❗JS奇技淫巧❗】JavaScript:截取DataURL中的base64字符串
  2. python编程内置函数使用方法_python编程(4)--内置函数
  3. fiddler抓包工具使用技巧
  4. hibernate reverse engineering 中没有java src folder
  5. MFC开发IM---MFC实现http协议传输图片和文本
  6. sftp api java_使用JSch实现SFTP文件传输
  7. 分享C#实现XML和实体序列化和反序列化的代码
  8. 集合set中的基数cardinality是什么意思
  9. hdu4521 线段树+dp
  10. linux+nginx+mysql+php的简单配置
  11. android聊天软件开发,实战篇(1)
  12. Building Worlds In Unreal 学习笔记——20-23 程序化植被/草Billboard材质/实时虚拟纹理(RVT)的使用
  13. 南锣鼓巷大变样,最新逛吃全攻略收好!
  14. 致远OA任意文件上传
  15. mysql级联删除_MySQL进阶三板斧(三)看清“触发器 (Trigger)”的真实面目
  16. 算法笔记胡凡 7.3.4 连接各点时代码有误
  17. 微信点击链接跳转到微信公众号关注页、微信关注链接
  18. JEECMS 自定义标签
  19. SocketInputStream.socketRead0 导致线程hangs的解决方案
  20. mysql 出现2003- cant connect to MYSQL server on localhost 的解决办法

热门文章

  1. Debian Xfce4键盘快捷键设置与修改
  2. 通道扣头发丝等复杂图片五步搞定
  3. 文心一言云服务即将上线;紫光原董事长赵伟国被审查;任正非:未来AI大模型赛道不只是微软一家;李开复筹办新AI公司丨每日大事件...
  4. jquery 取值 赋值
  5. 杰理之开 TWS 开硬件 EQ 在线调试声音变调【篇】
  6. enable_if 的一个奇怪用法
  7. bootstrap select多选的change事件
  8. [IMX6DL]fastboot erase SD分区实现
  9. 记一次大厂的面试过程
  10. autojump输入 j 命令加文件名 无法跳转 显示 ·