Python 标准库笔记:string模块

2017 年 9 月 2 日 Python开发者

(点击上方蓝字,快速关注我们)


来源:j_hao104 

my.oschina.net/jhao104/blog/829775

如有好文章投稿,请点击 → 这里了解详情


String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作。


1. 常用方法


2.字符串常量



3.字符串模板Template


通过string.Template可以为Python定制字符串的替换标准,下面是具体列子:


>>>from string import Template

>>>s = Template('$who like $what')

>>>print s.substitute(who='i', what='python')

i like python

 

>>>print s.safe_substitute(who='i') # 缺少key时不会抛错

i like $what

 

>>>Template('${who}LikePython').substitute(who='I') # 在字符串内时使用{}

'ILikePython'


Template还有更加高级的用法,可以通过继承string.Template, 重写变量delimiter(定界符)和idpattern(替换格式), 定制不同形式的模板。


import string

 

template_text = ''' Delimiter : $de Replaced : %with_underscore Ingored : %notunderscored '''

 

d = {'de': 'not replaced',

     'with_underscore': 'replaced',

     'notunderscored': 'not replaced'}

 

class MyTemplate(string.Template):

    # 重写模板 定界符(delimiter)为"%", 替换模式(idpattern)必须包含下划线(_)

    delimiter = '%'

    idpattern = '[a-z]+_[a-z]+'

 

print string.Template(template_text).safe_substitute(d)  # 采用原来的Template渲染

 

print MyTemplate(template_text).safe_substitute(d)  # 使用重写后的MyTemplate渲染


输出:


Delimiter : not replaced

    Replaced : %with_underscore

    Ingored : %notunderscored

 

    Delimiter : $de

    Replaced : replaced

    Ingored : %notunderscored


原生的Template只会渲染界定符为$的情况,重写后的MyTemplate会渲染界定符为%且替换格式带有下划线的情况。


4.常用字符串技巧


  • 1.反转字符串


>>> s = '1234567890'

>>> print s[::-1]

0987654321


  • 2.关于字符串链接


尽量使用join()链接字符串,因为’+’号连接n个字符串需要申请n-1次内存,使用join()需要申请1次内存。


  • 3.固定长度分割字符串


>>> import re

>>> s = '1234567890'

>>> re.findall(r'.{1,3}', s)  # 已三个长度分割字符串

['123', '456', '789', '0']


  • 4.使用()括号生成字符串


sql = ('SELECT count() FROM table '

       'WHERE id = "10" '

       'GROUP BY sex')

 

print sql

 

SELECT count() FROM table WHERE id = "10" GROUP BY sex


  • 5.将print的字符串写到文件


>>> print >> open("somefile.txt", "w+"), "Hello World"  # Hello World将写入文件somefile.txt


看完本文有收获?请转发分享给更多人

关注「Python开发者」,提升Python技能

登录查看更多
0

相关内容

【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
118+阅读 · 2019年12月31日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
38+阅读 · 2019年11月13日
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
手把手教你用Python实现“坦克大战”,附详细代码!
机器学习算法与Python学习
11+阅读 · 2019年6月8日
PyTorch 学习笔记(七):PyTorch的十个优化器
极市平台
8+阅读 · 2019年5月19日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
学员笔记||Python数据分析之:numpy入门(一)
七月在线实验室
7+阅读 · 2017年9月28日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
Scale-Aware Trident Networks for Object Detection
Arxiv
4+阅读 · 2019年1月7日
Arxiv
6+阅读 · 2018年5月22日
Arxiv
4+阅读 · 2016年9月20日
VIP会员
相关VIP内容
【2020新书】从Excel中学习数据挖掘,223页pdf
专知会员服务
90+阅读 · 2020年6月28日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
《动手学深度学习》(Dive into Deep Learning)PyTorch实现
专知会员服务
118+阅读 · 2019年12月31日
【干货】大数据入门指南:Hadoop、Hive、Spark、 Storm等
专知会员服务
95+阅读 · 2019年12月4日
【精通OpenCV 4】Mastering OpenCV 4 - Third Edition 随书代码
专知会员服务
38+阅读 · 2019年11月13日
相关资讯
用 Python 开发 Excel 宏脚本的神器
私募工场
26+阅读 · 2019年9月8日
吐血整理!140种Python标准库、第三方库和外部工具都有了
炼数成金订阅号
14+阅读 · 2019年7月30日
手把手教你用Python实现“坦克大战”,附详细代码!
机器学习算法与Python学习
11+阅读 · 2019年6月8日
PyTorch 学习笔记(七):PyTorch的十个优化器
极市平台
8+阅读 · 2019年5月19日
Github项目推荐 | RecQ - Python推荐系统框架
AI研习社
8+阅读 · 2019年1月23日
实战 | 用Python做图像处理(三)
七月在线实验室
15+阅读 · 2018年5月29日
Python 爬虫实践:《战狼2》豆瓣影评分析
数据库开发
5+阅读 · 2018年3月19日
学员笔记||Python数据分析之:numpy入门(一)
七月在线实验室
7+阅读 · 2017年9月28日
代码这样写不止于优雅(Python版)
数说工作室
4+阅读 · 2017年7月17日
Top
微信扫码咨询专知VIP会员