Python中模块string.py详解


Posted in Python onMarch 12, 2017

一、用法

字符串常量:

import string

print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.ascii_letters)
print(string.digits)
print(string.hexdigits)
print(string.octdigits)
print(string.punctuation)
print(string.printable)

结果

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
0123456789
0123456789abcdefABCDEF
01234567
!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~
0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&'()*+,-
 ./:;<=>?@[\]^_`{|}~

二、Template类:

其实,Template类,可以和格式化字符串的用法还有字符串对象的format()方法做对比,可以帮助更好地理解。首先,新建一个python文件:string_template.py,

然后在里面写入以下内容:

import string

values = {'var': 'foo'}

t = string.Template("""
Variable : $var
Escape  : $$
Variable in text: ${var}iable
""")

print('TEMPLATE:', t.substitute(values))

s = """
Variable : %(var)s
Escape  : %%
Variable in text: %(var)siable
"""

print('INTERPOLATION:', s % values)

s = """
Variable : {var}
Escape  : {{}}
Variable in text: {var}iable
"""

print('FORMAT:', s.format(**values))

然后,在python命令行中输入:

$ python string_template.py

结果

TEMPLATE:
Variable : foo
Escape  : $
Variable in text: fooiable

INTERPOLATION:
Variable : foo
Escape  : %
Variable in text: fooiable

FORMAT:
Variable : foo
Escape  : {}

可以看到三者之间都可以起到对字符串里进行格式化的效果。只是三者的修饰符不一样。Template类好的一点就是其可以通过继承类,实例化后自定义其修饰符,并且也可以对变量的名字格式进行正则表达式的定义。

如string_template_advanced.py示例:

import string
class MyTemplate(string.Template):
 delimiter = '%'
 idpattern = '[a-z]+_[a-z]+'


template_text = '''
 Delimiter : %%
 Replaced : %with_underscore
 Igonred : %notunderscored
'''


d = {
 'with_underscore': 'replaced',
 'notunderscored': 'not replaced',
}

t = MyTemplate(template_text)
print('Modified ID pattern:')
print(t.safe_substitute(d))

首先,解释下上面python文件。里面定义了一个类MyTemplate,继承了string的Template类,然后,对其两个域进行重载: Delimiter为修饰符,现在指定为了‘%',而不是之前的‘$'。 接着,idpattern是对变量的格式指定。

结果

$ python string_template_advanced.py
Modified ID pattern:

 Delimiter : %
 Replaced : replaced
 Igonred : %notunderscored

为什么notunderscored没有被替换呢?原因是我们在类定义的时候,idpattern里指定要出现下划线'_', 而该变量名并没有下划线,故替代不了。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
用map函数来完成Python并行任务的简单示例
Apr 02 Python
Python的GUI框架PySide的安装配置教程
Feb 16 Python
python装饰器与递归算法详解
Feb 18 Python
Python实现文件内容批量追加的方法示例
Aug 29 Python
Python Tkinter实现简易计算器功能
Jan 30 Python
Python 找到列表中满足某些条件的元素方法
Jun 26 Python
django框架实现一次性上传多个文件功能示例【批量上传】
Jun 19 Python
Python列表对象实现原理详解
Jul 01 Python
Python字符串大小写转换拼接删除空白
Sep 19 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
Python中常见的数制转换有哪些
May 27 Python
python如何发送带有附件、正文为HTML的邮件
Feb 27 Python
Python中第三方库Requests库的高级用法详解
Mar 12 #Python
python 获取网页编码方式实现代码
Mar 11 #Python
python 爬虫出现403禁止访问错误详解
Mar 11 #Python
Python如何读取MySQL数据库表数据
Mar 11 #Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
Mar 11 #Python
Python搭建HTTP服务器和FTP服务器
Mar 09 #Python
开源Web应用框架Django图文教程
Mar 09 #Python
You might like
php实现按文件名搜索文件的远程文件查找器
2014/05/10 PHP
php编写的一个E-mail验证类
2015/03/25 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
用JavaScript实现仿Windows关机效果
2007/03/10 Javascript
基于Jquery的$.cookie()实现跨越页面tabs导航实现代码
2011/03/03 Javascript
30分钟就入门的正则表达式基础教程
2013/02/25 Javascript
jQuery Deferred和Promise创建响应式应用程序详细介绍
2013/03/05 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
2015/04/26 Javascript
jquery专业的导航菜单特效代码分享
2015/08/29 Javascript
JavaScript制作简单分页插件
2016/09/11 Javascript
JS实现的tab切换选项卡效果示例
2017/02/28 Javascript
如何选择适合你的JavaScript框架
2017/11/20 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
vue单文件组件lint error自动fix与styleLint报错自动fix详解
2019/01/08 Javascript
详解一个小实例理解js原型和继承
2019/04/24 Javascript
微信小程序实现授权登录
2019/05/15 Javascript
python使用super()出现错误解决办法
2017/08/14 Python
python 文件操作删除某行的实例
2017/09/04 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
python Pillow图像处理方法汇总
2019/10/16 Python
pyecharts在数据可视化中的应用详解
2020/06/08 Python
CSS3绘制不规则图形的一些方法示例
2015/11/07 HTML / CSS
html5 乒乓球(碰撞检测)实例二
2013/07/25 HTML / CSS
美国紧身牛仔裤品牌:NYDJ
2017/05/24 全球购物
Harman Audio官方商店:购买JBL、Harman Kardon、Infinity和AKG
2019/12/05 全球购物
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
学习党的群众路线教育实践活动心得体会
2014/03/01 职场文书
专题组织生活会方案
2014/06/15 职场文书
导航工程专业自荐信
2014/09/02 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014年服务员工作总结
2014/11/18 职场文书
七一活动主持词
2015/06/29 职场文书
2019通用版劳动合同范本!
2019/07/11 职场文书
pytorch中的 .view()函数的用法介绍
2022/03/17 Python
Tomcat starup.bat 脚本实现开机自启动
2022/04/20 Servers