Python 下字符串的提取、分割与删除- 千月的python linux 系统管理指南学习笔记(11)
来源:互联网 发布:mac 10.7.5怎么升级 编辑:程序博客网 时间:2024/06/05 19:38
Python 下字符串的提取、分割与删除
对于文本来讲,提取、分割和删除是我们用的较多的操作。
文本我们可以看成是字符串对象。首先说到的是 in 和 not in操作。
字符串的提取
in 和 not in 判定是否包含字符
我们可以使用 in 或者 not in 来检查一个字符串是否是另一个字符串的一部分。
使用方法:
关键字 [not] in 字符对象 #判定是否存在所示关键字
in 和 not in 主要调用了 str 对象的 __contains__ 方法。
如果 字符串2 包含 字符串1 则 "字符串1 in 字符串2" 返回 True
我们看下 __contains__ 方法的描述,使用了第2章说过的 ? 帮助。
从帮助中我们看到 uname.__contains__() 等价于 'Linux' in uname
find() 和 index() 判定包含字符的位置
既然可以判定是否包含字符,包含字符的位置是下一个需要知道的。
字符对象.find('关键字') 字符对象.index('关键字') #查找关键字处于字符串的位置
两个函数都是查询关键字位置的,区别在于返回值不同。
请看例子
在关键字能查找到的情况下 , index() 和 find() 返回值是相同的,但是在找不到的情况下,find()返回-1 而 index() 抛出一个错误。
startswith() 和 endswith() 判定字符串是否以特定子串开始或者结束
这个方法返回的是T/F,对于验证路由器备份,或者log日志判断第一列等操作还是有意义的。
字符对象.startswith('关键字') 字符对象.endswith('关键字')
例子:
upper() 和 lower() 忽略大小写
这两个方法非常有用,主要用于对两个字符串比较但是不想考虑其大小写时。
字符对象.upper() 字符对象.lower()
例子:
对于用户名密码或者验证码输入判定时很有效。
==================================================
字符串的分割
既然可以判定是否包含字符,包含字符的位置是下一个需要知道的。
字符对象[位置1:位置2] #切分字符串
这其实是python中一个很典型的用法。我们可以把 ":" 看成希望得到的子串。
位置1为0 的时候可以写成 [: 位置2]
位置的部分是一个整数,可以为负数。下面是位置的标识。
-5 -4 -3 -2 -1
L i n u x
0 1 2 3 4
[1:4] 截取的是 1 2 3位置的字符,也就是 inu 。不包括4的字符x 。
我们看例子
日常工作中我们可以依此来截取个 IP 地址或者log日志时间什么的。
还有一种是步长截取,用的不是很多。中间有2个冒号 [ 1:: 2 ]
L i n u x
01 23 4
意思是 从1位开始,每隔2个步长截取一个字符。答案是 iu
split() 根据指定的分隔符对字符串提取
这个方法的典型用法是:把希望作为分隔符的字符串作为参数传递给它。
一般来说分隔符是一个单个字管道符,像 "," " | " 诸如此类。
字符对象.split('分隔符',[应用几次]) #以指定分隔符分割字符串
我们用逗号进行分割,如果第2个参数输入数字,代表分割次数。
调用的话也很简单。当作列表调用。
如果要以行来分割的话。
splitlines() 可以做到按行分割,但是一般来说行处理不用行分割的方法。这里不赘述了。
==================================================
字符串的删除
lstrip() rstrip() strip() 删除空白或字符
这3个方法本来的意思是删除前导空白 结尾空白 或者 前后空白。但是使用参数删除任意字符。
lstrip() 删除前导空白或者字符
rstrip() 删除结尾空白或者字符
strip() 删除前后的空白或者字符
注:所有strip() 方法会创建或者返回新的字符串对象,不会修改原有对象。
使用方法:
字符对象.strip(['关键字']) #删除空白或者关键字
我们看到了删除空白的情况,之后看看删除字符的。
In[19] 显示了当我们关键字是 “<>”的时候,并不是顺序匹配 <> 而是删除了全部的 < 和 >
下面一个例子更明显。
虽然是删除了前后的字符,但是中间的字符是不会被删除的。
中间的 e 还在。
0 0
- Python 下字符串的提取、分割与删除- 千月的python linux 系统管理指南学习笔记(11)
- Python 下字符串的连接、简单替换与unicode字符串- 千月的python linux 系统管理指南学习笔记(12)
- Python简介- 千月的Python linux系统管理指南学习笔记(1)
- Python 标准输入输出 StringIO urllib- 千月的python linux 系统管理指南学习笔记(16)
- Python docutils 文本到html 的转换 docutils- 千月的python linux 系统管理指南学习笔记(17)
- Python 创建、读取和写入文件以及yield关键字- 千月的python linux 系统管理指南学习笔记(14)
- IPython 下的信息收集-魔力函数(page pinfo who等)- 千月的python linux 系统管理指南学习笔记(9)
- IPython下目录的操作-魔力函数(cd pwd bookmark dhist )- 千月的python linux 系统管理指南学习笔记(7)
- IPython下执行shell命令-魔力函数(alias store rehash)- 千月的python linux 系统管理指南学习笔记(6)
- python 对异常的处理(try...finally...和with 方法)- 千月的python linux 系统管理指南学习笔记(15)
- Python 正则表达式的使用(re findall finditer match search)- 千月的python linux 系统管理指南学习笔记(13)
- Python.Unix和Linux系统管理指南----学习的动力
- Python学习笔记之一:Python的字符串
- Linux学习笔记-与系统管理有关的命令[转帖]
- python学习笔记-(1)linux下的helloworld
- 学习笔记 提取常量和一个简单的聊天系统(python)from python基础教程
- 3.python学习笔记:python下的多进程与多线程(一)
- Python学习笔记--关于split的分割问题
- ATM的面向对象设计
- [数据结构]Hash Table(哈希表)
- 轮子和车的故事
- Springmvc接收数组参数
- 第九单元 FTP服务的配置及应用
- Python 下字符串的提取、分割与删除- 千月的python linux 系统管理指南学习笔记(11)
- 1039. 到底买不买
- PHP之curl实现http与https请求的
- 2017-4-28 C++笔记 (第三章 字符串、向量和数组)
- vb.net 教程 3-4 窗体编程 公共控件6 PictureBox & ProgressBar
- JavaScript中的Ajax
- 用户注册页面的实现
- css3前缀
- 敌兵布阵