Python中模块string.py详解
2017-03-12 11:42
603 查看
一、用法
字符串常量:
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开发之字符串string操作方法实例详解
- Python列表(list)、字典(dict)、字符串(string)基本操作小结
- Python原始字符串(raw strings)用法实例
- Python StringIO模块实现在内存缓冲区中读写数据
- python3中bytes和string之间的互相转换
- Python的string模块中的Template类字符串模板用法
- python中string模块各属性以及函数的用法介绍
- python实现字典(dict)和字符串(string)的相互转换方法
- Python 基础之字符串string详解及实例
- Python 常用string函数详解
- Python编程之string相关操作实例详解
相关文章推荐
- <python>string模块详解
- python标准库介绍——23 UserString 模块详解
- Python中的string模块详解——string的中文API文档
- Python3中正则模块re.compile、re.match及re.search函数用法详解
- Python __init__.py 作用详解
- 第二课 Python爬虫网络请求request模块详解
- [转载]Python logging模块详解
- python中的StringIO模块——html
- Python 命令行工具 argparse 模块使用详解
- python的re模块详解
- python 常用模块简介string 模块
- python os.path模块常用方法详解
- 详解Python中的array数组模块相关使用
- Python logging模块详解
- python之string模块
- python 序列化及其相关模块(json,pickle,shelve,xml)详解
- python标准库介绍——36 popen2 模块详解
- Python中time模块详解(转)
- python中string模块各属性以及函数的用法
- Python 解析配置模块之ConfigParser详解