python string模块template_Python标准库笔记(1) — string模块

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

1. 常用方法

常用方法描述str.capitalize()把字符串的首字母大写str.center(width)将原字符串用空格填充成一个长度为width的字符串,原字符串内容居中str.count(s)返回字符串s在str中出现的次数str.decode(encoding=’UTF-8’,errors=’strict’)以指定编码格式解码字符串str.encode(encoding=’UTF-8’,errors=’strict’)以指定编码格式编码字符串str.endswith(s)判断字符串str是否以字符串s结尾str.find(s)返回字符串s在字符串str中的位置索引,没有则返回-1str.index(s)和find()方法一样,但是如果s不存在于str中则会抛出异常str.isalnum()如果str至少有一个字符并且都是字母或数字则返回True,否则返回Falsestr.isalpha()如果str至少有一个字符并且都是字母则返回True,否则返回Falsestr.isdigit()如果str只包含数字则返回 True 否则返回 Falsestr.islower()如果str存在区分大小写的字符,并且都是小写则返回True 否则返回Falsestr.isspace()如果str中只包含空格,则返回 True,否则返回 Falsestr.istitle()如果str是标题化的(单词首字母大写)则返回True,否则返回Falsestr.isupper()如果str存在区分大小写的字符,并且都是大写则返回True 否则返回Falsestr.ljust(width)返回一个原字符串左对齐的并使用空格填充至长度width的新字符串str.lower()转换str中所有大写字符为小写str.lstrip()去掉str左边的不可见字符str.partition(s)用s将str切分成三个值str.replace(a, b)将字符串str中的a替换成bstr.rfind(s)类似于 find()函数,不过是从右边开始查找str.rindex(s)类似于 index(),不过是从右边开始str.rjust(width)返回一个原字符串右对齐的并使用空格填充至长度width的新字符串str.rpartition(s)类似于 partition()函数,不过是从右边开始查找str.rstrip()去掉str右边的不可见字符str.split(s)以s为分隔符切片strstr.splitlines()按照行分隔,返回一个包含各行作为元素的列表str.startswith(s)检查字符串str是否是以s开头,是则返回True,否则返回Falsestr.strip()等于同时执行rstrip()和lstrip()str.title()返回”标题化”的str,所有单词都是以大写开始,其余字母均为小写str.upper()返回str所有字符为大写的字符串str.zfill(width)返回长度为 width 的字符串,原字符串str右对齐,前面填充0

2.字符串常量

常数含义string.ascii_lowercase小写字母’abcdefghijklmnopqrstuvwxyz’string.ascii_uppercase大写的字母’ABCDEFGHIJKLMNOPQRSTUVWXYZ’string.ascii_lettersascii_lowercase和ascii_uppercase常量的连接串string.digits数字0到9的字符串:’0123456789’string.hexdigits字符串’0123456789abcdefABCDEF’string.letters字符串’abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’string.lowercase小写字母的字符串’abcdefghijklmnopqrstuvwxyz’string.octdigits字符串’01234567’string.punctuation所有标点字符string.printable可打印的字符的字符串。包含数字、字母、标点符号和空格string.uppercase大学字母的字符串’ABCDEFGHIJKLMNOPQRSTUVWXYZ’string.whitespace空白字符 ‘\t\n\x0b\x0c\r ‘

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

转载于:https://my.oschina.net/jhao104/blog/829775

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值