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实现DNS正向查询、反向查询的例子
Apr 25 Python
python如何获取服务器硬件信息
May 11 Python
python针对excel的操作技巧
Mar 13 Python
python3之模块psutil系统性能信息使用
May 30 Python
用Python实现筛选文件脚本的方法
Oct 27 Python
pandas 将索引值相加的方法
Nov 15 Python
Django中URL的参数传递的实现
Aug 04 Python
python word转pdf代码实例
Aug 16 Python
Pytorch中实现只导入部分模型参数的方式
Jan 02 Python
谈一谈数组拼接tf.concat()和np.concatenate()的区别
Feb 07 Python
Python enumerate() 函数如何实现索引功能
Jun 29 Python
Python reques接口测试框架实现代码
Jul 28 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安装问题
2006/10/09 PHP
php遍历文件夹和文件列表示例分享
2014/03/11 PHP
PHP基于递归算法解决兔子生兔子问题
2018/05/11 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
2007/08/31 Javascript
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
jQuery显示和隐藏 常用的状态判断方法
2015/01/29 Javascript
简单谈谈node.js 版本控制 nvm和 n
2015/10/15 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
JS扩展String.prototype.format字符串拼接的功能
2018/03/09 Javascript
JavaScript作用域、闭包、对象与原型链概念及用法实例总结
2018/08/20 Javascript
通过layer实现可输入的模态框的例子
2019/09/27 Javascript
node+multer实现图片上传的示例代码
2020/02/18 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
Js实现粘贴上传图片的原理及示例
2020/12/09 Javascript
五句话帮你轻松搞定js原型链
2020/12/09 Javascript
[02:16]DOTA2英雄基础教程 干扰者
2014/01/15 DOTA
[00:33]DOTA2上海特级锦标赛 CDEC战队宣传片
2016/03/04 DOTA
python快速排序代码实例
2013/11/21 Python
Python Grid使用和布局详解
2018/06/30 Python
Python饼状图的绘制实例
2019/01/15 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
python3.6+django2.0+mysql搭建网站过程详解
2019/07/24 Python
python进程的状态、创建及使用方法详解
2019/12/06 Python
python 对一幅灰度图像进行直方图均衡化
2020/10/27 Python
Laura Mercier官网:彩妆大师罗拉玛斯亚的化妆品牌
2018/01/04 全球购物
教师求职推荐信范文
2013/11/20 职场文书
临床医学专业学生的自我评价分享
2013/11/21 职场文书
影视动画专业个人的自我评价
2013/12/31 职场文书
网络维护中文求职信
2014/01/03 职场文书
竞选卫生委员演讲稿
2014/04/28 职场文书
文明寝室标语
2014/06/13 职场文书
质量主管工作职责
2014/09/26 职场文书
初中英语教师个人工作总结2015
2015/07/21 职场文书
mysql sql常用语句大全
2022/06/21 MySQL
IDEA中sout快捷键无效问题的解决方法
2022/07/23 Java/Android