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 相关文章推荐
python基础入门详解(文件输入/输出 内建类型 字典操作使用方法)
Dec 08 Python
python中的字典详细介绍
Sep 18 Python
Python实现的简单算术游戏实例
May 26 Python
python批量读取txt文件为DataFrame的方法
Apr 03 Python
Python smtplib实现发送邮件功能
May 22 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
python输入整条数据分割存入数组的方法
Nov 13 Python
Python第三方库face_recognition在windows上的安装过程
May 03 Python
python定位xpath 节点位置的方法
Aug 27 Python
浅析Python数字类型和字符串类型的内置方法
Dec 22 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Python编写车票订购系统 Python实现快递收费系统
Aug 14 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 编程安全性小结
2010/01/08 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
laravel 实现向公共模板中传值 (view composer)
2019/10/22 PHP
Javascript操作select方法大全[新增、修改、删除、选中、清空、判断存在等]
2008/09/26 Javascript
使用ExtJS技术实现的拖动树结点
2010/08/05 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
2015/03/24 Javascript
JavaScript中this详解
2015/09/01 Javascript
深入浅出ES6新特性之函数默认参数和箭头函数
2016/08/01 Javascript
NodeJs的优势和适合开发的程序
2016/08/14 NodeJs
JS控制FileUpload的上传文件类型实例代码
2016/10/07 Javascript
DOM 事件的深入浅出(二)
2016/12/05 Javascript
js封装tab标签页实例分享
2016/12/19 Javascript
浅谈vue的踩坑路
2017/08/31 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
jQuery实现的点击图片居中放大缩小功能示例
2019/01/16 jQuery
vue mvvm数据响应实现
2020/11/11 Javascript
vue中封装axios并实现api接口的统一管理
2020/12/25 Vue.js
Python实现文件复制删除
2016/04/19 Python
利用Python-iGraph如何绘制贴吧/微博的好友关系图详解
2017/11/02 Python
在PyCharm下打包*.py程序成.exe的方法
2018/11/29 Python
cProfile Python性能分析工具使用详解
2019/07/22 Python
np.newaxis 实现为 numpy.ndarray(多维数组)增加一个轴
2019/11/30 Python
HTML5新增元素如何兼容旧浏览器有哪些方法
2014/05/09 HTML / CSS
英国著名音像制品和图书游戏购物网站:Zavvi
2016/08/04 全球购物
在线吉他课程,学习如何弹吉他:Fender Play
2019/02/28 全球购物
ECCO英国官网:丹麦鞋履品牌
2019/09/03 全球购物
经典优秀个人求职自荐信格式
2013/09/25 职场文书
村捐赠仪式答谢词
2014/01/21 职场文书
职业生涯规划书结束语
2014/04/15 职场文书
入党函调证明材料
2014/12/24 职场文书
仓管员岗位职责
2015/02/03 职场文书
2015年社会实践个人总结
2015/03/06 职场文书
个人原因辞职信模板
2015/05/13 职场文书
委托收款证明
2015/06/23 职场文书
趣味运动会加油词
2015/07/18 职场文书
详解Python requests模块
2021/06/21 Python