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中的位置索引,没有则返回-1
str.index(s) 和find()方法一样,但是如果s不存在于str中则会抛出异常
str.isalnum() 如果str至少有一个字符并且都是字母或数字则返回True,否则返回False
str.isalpha() 如果str至少有一个字符并且都是字母则返回True,否则返回False
str.isdigit() 如果str只包含数字则返回 True 否则返回 False
str.islower() 如果str存在区分大小写的字符,并且都是小写则返回True 否则返回False
str.isspace() 如果str中只包含空格,则返回 True,否则返回 False
str.istitle() 如果str是标题化的(单词首字母大写)则返回True,否则返回False
str.isupper() 如果str存在区分大小写的字符,并且都是大写则返回True 否则返回False
str.ljust(width) 返回一个原字符串左对齐的并使用空格填充至长度width的新字符串
str.lower() 转换str中所有大写字符为小写
str.lstrip() 去掉str左边的不可见字符
str.partition(s) 用s将str切分成三个值
str.replace(a, b) 将字符串str中的a替换成b
str.rfind(s) 类似于 find()函数,不过是从右边开始查找
str.rindex(s) 类似于 index(),不过是从右边开始
str.rjust(width) 返回一个原字符串右对齐的并使用空格填充至长度width的新字符串
str.rpartition(s) 类似于 partition()函数,不过是从右边开始查找
str.rstrip() 去掉str右边的不可见字符
str.split(s) 以s为分隔符切片str
str.splitlines() 按照行分隔,返回一个包含各行作为元素的列表
str.startswith(s) 检查字符串str是否是以s开头,是则返回True,否则返回False
str.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_letters ascii_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会渲染界定符为%且替换格式带有下划线的情况。

?

时间: 2024-10-23 01:30:10

Python标准库笔记(1) — string模块的相关文章

Python标准库笔记(6) — struct模块

该模块作用是完成Python数值和C语言结构体的Python字符串形式间的转换.这可以用于处理存储在文件中或从网络连接中存储的二进制数据,以及其他数据源. 用途: 在Python基本数据类型和二进制数据之间进行转换 struct模块提供了用于在字节字符串和Python原生数据类型之间转换函数,比如数字和字符串. 模块函数和Struct类 它除了提供一个Struct类之外,还有许多模块级的函数用于处理结构化的值.这里有个格式符(Format specifiers)的概念,是指从字符串格式转换为已编

Python标准库笔记(2) — re模块

re模块提供了一系列功能强大的正则表达式(regular expression)工具,它们允许你快速检查给定字符串是否与给定的模式匹配(match函数), 或者包含这个模式(search函数).正则表达式是以紧凑(也很神秘)的语法写出的字符串模式. 1. 常用方法 常用方法 描述 match(pattern, string, flags=0) 如果字符串string的开头和正则表达式pattern匹配返回相应的MatchObject的实例,否则返回None search(pattern, str

Python标准库笔记(5) — sched模块

事件调度 sched模块内容很简单,只定义了一个类.它用来最为一个通用的事件调度模块. class sched.scheduler(timefunc, delayfunc)这个类定义了调度事件的通用接口,它需要外部传入两个参数,timefunc是一个没有参数的返回时间类型数字的函数(常用使用的如time模块里面的time),delayfunc应该是一个需要一个参数来调用.与timefunc的输出兼容.并且作用为延迟多个时间单位的函数(常用的如time模块的sleep). 下面是一个列子: imp

【python标准库学习】re模块

1.什么是re 正则表达式一门相对通用的语言,在python中也有对正则表达式的支持,那就是的内置re模块.正则表达式就是一系列的规则去匹配字符串然后进行相应的操作,这些规则网上一搜一大片,而re则是运用正则表达式来提供一系列的功能强大的接口让我们来调用.通常我们在对日志文件进行操作的时候会对正则表达式运用的比较多来得到我们希望得到的数据. 2.python中的转义符 正则表达式中通常用反斜杠'\'来代表转义,'\d'代表数字等,但是python本身也是通过反斜杠'\'来表示转义,所以就和正则表

python标准库介绍——36 popen2 模块详解

==popen2 模块== ``popen2`` 模块允许你执行外部命令, 并通过流来分别访问它的 ``stdin`` 和 ``stdout`` ( 可能还有 ``stderr`` ). 在 python 1.5.2 以及之前版本, 该模块只存在于 Unix 平台上. 2.0 后, Windows 下也实现了该函数. [Example 3-9 #eg-3-9] 展示了如何使用该模块来给字符串排序. ====Example 3-9. 使用 popen2 模块对字符串排序Module to Sort

python标准库笔记

第1章 文本1 第2章  数据结构55 第3章  算法103 第4章  日期和时间138 第5章  数学计算157 第6章  文件系统197 第7章 数据持久存储与交换267 第8章 数据压缩与归档340 第9章 加密378 第10章 进程与线程387 第11章 网络通信452 第12章 internet514 第13章 email587 第14章 应用构建模块623 第15章 国际化和本地化729 第16章 开发工具745 第17章 运行时特性847 第18章 语言工具947 第19章 模块与

python标准库介绍——35 pipes 模块详解

==pipes 模块== (只用于 Unix) ``pipes`` 模块提供了 "转换管道 (conversion pipelines)" 的支持. 你可以创建包含许多外部工具调用的管道来处理多个文件. 如 [Example 3-8 #eg-3-8] 所示. ====Example 3-8. 使用 pipes 模块====[eg-3-8] ``` File: pipes-example-1.py import pipes t = pipes.Template() # create a

python标准库介绍——34 commands 模块详解

==commands 模块== (只用于 Unix) ``commands`` 模块包含一些用于执行外部命令的函数. [Example 3-7 #eg-3-7] 展示了这个模块. ====Example 3-7. 使用 commands 模块====[eg-3-7] ``` File: commands-example-1.py import commands stat, output = commands.getstatusoutput("ls -lR") print "s

python标准库介绍——31 threading 模块详解

threading 模块 (可选) ``threading`` 模块为线程提供了一个高级接口, 如 [Example 3-1 #eg-3-1] 所示. 它源自 Java 的线程实现. 和低级的 ``thread`` 模块相同, 只有你在编译解释器时打开了线程支持才可以使用它 . 你只需要继承 //Thread// 类, 定义好 ``run`` 方法, 就可以创建一 个新的线程. 使用时首先创建该类的一个或多个实例, 然后调用 ``start`` 方法. 这样每个实例的 ``run`` 方法都会运