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简单日志处理类分享
Feb 14 Python
Python下rrdtool模块的基本使用方法
Nov 13 Python
Pycharm更换python解释器的方法
Oct 29 Python
python抓取多种类型的页面方法实例
Nov 20 Python
python 实现将小图片放到另一个较大的白色或黑色背景图片中
Dec 12 Python
Python reshape的用法及多个二维数组合并为三维数组的实例
Feb 07 Python
将数据集制作成VOC数据集格式的实例
Feb 17 Python
jupyter notebook运行命令显示[*](解决办法)
May 18 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
python 读txt文件,按‘,’分割每行数据操作
Jul 05 Python
使用Python操作MySQL的小技巧
Sep 10 Python
Python实现钉钉/企业微信自动打卡的示例代码
Feb 02 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
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
php实现连接access数据库并转txt写入的方法
2017/02/08 PHP
PHP 年月日的三级联动实例代码
2017/05/24 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
2017/11/14 PHP
阿里云Win2016安装Apache和PHP环境图文教程
2018/03/11 PHP
php二维数组按某个键值排序的实例讲解
2019/02/15 PHP
PHP Trait代码复用类与多继承实现方法详解
2019/06/17 PHP
laravel框架查询数据集转为数组的两种方法
2019/10/10 PHP
PHP全局使用Laravel辅助函数dd
2019/12/26 PHP
js函数中onmousedown和onclick的区别和联系探讨
2013/05/19 Javascript
Jquery ajaxStart()与ajaxStop()方法(实例讲解)
2013/12/18 Javascript
Backbone.js 0.9.2 源码注释中文翻译版
2015/06/25 Javascript
第一次动手实现bootstrap table分页效果
2016/09/22 Javascript
Vue keep-alive实践总结(推荐)
2017/08/31 Javascript
详解基于Vue+Koa的pm2配置
2017/10/24 Javascript
在vue项目中引入高德地图及其UI组件的方法
2018/09/04 Javascript
vue权限问题的完美解决方案
2019/05/08 Javascript
vue移动端使用appClound拉起支付宝支付的实现方法
2019/11/21 Javascript
[51:27]LGD vs Liquid 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
Python标准库内置函数complex介绍
2014/11/25 Python
Python装饰器原理与用法分析
2018/04/30 Python
python如何生成网页验证码
2018/07/28 Python
Win10下python 2.7.13 安装配置方法图文教程
2018/09/18 Python
Python语法分析之字符串格式化
2019/06/13 Python
Python操作MySQL数据库实例详解【安装、连接、增删改查等】
2020/01/17 Python
如何基于Python爬取隐秘的角落评论
2020/07/02 Python
Pytest测试框架基本使用方法详解
2020/11/25 Python
8款精美的CSS3表单设计(登录表单/下拉选择/按钮附演示及源码)
2013/02/04 HTML / CSS
诗普兰迪官方网站:Splendid
2018/09/18 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
优秀工作者事迹材料
2014/12/26 职场文书
客户经理岗位职责
2015/01/31 职场文书
倡议书的格式写法
2015/04/28 职场文书
警示教育片观后感
2015/06/17 职场文书
python实现A*寻路算法
2021/06/13 Python