今天小编给大家分享一下python的文本处理方法有哪些的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
1、字符串常量
1.1、定义字符串
python不区分字符和字符串,所以python可以使用引号或者双引号来定义字符串,如下:
7]: "He's a teacher"
8]: 'john said to me:"can you do me a favor tonight"'
当然,python也可以使用转译字符来进行转译,转译字符是\。
\`:单引号
\n:换行
\a:响铃
\b:退格,将当前位置移动到前一列
\f:换页,将当前位置移动到下页开头
\r:回车,将当前位置移动到本行开头
\t:水平制表,跳到下一个TAB位置
\v:垂直制表
\\:代表一个反斜杠字符'\'
在编程语言中,使用\定义转译字符,在URL中,使用%定义转译字符。
对于前面的例子,还可以用转译字符来表示:
<div data-mode="Python" data-theme="default" id="wiz_cm_1515825814096_3551" class="wiz-code-container" font-size:16px;white-space:normal;">
11]: "He\'s a teacher"
12]: "john said to me:\"can you do me a favor tonight\""
大家通过前面的介绍,知道python遇到\时,会认为是一个转移符,但是如下,可能改变我们的初衷:
18]: r"c:\next"
19]: print(\next
在python中,还可以使用三引号来定义字符串,如下:
25]: "hello"
26]: 0]
26]: 'h'
27]: 0] = 'H'
input27812in 1 0] = 'H'
'str' object not 30]: 30]: 'hello'
31]: 1:]
31]: 'ello'
32]: 'H' 1:]
33]: 33]: 'Hello'
34]: 'World'
34]: 'HelloWorld'
35]: 35]: 'Hello'
36]: 3
36]: 'HelloHelloHello'
python字符串每次操作都会产生一个新的字符串,新的字符串会占用一块独立的内存。因此,操作字符串时需要避免产生太多的中间结果。
枚举元组里面东西,应该用字符串的join方法,如下:
40]: "Hello,world"
41]: 5]
41]: 'Hello'
42]: 0:5]
42]: 'Hello'
43]: 0:4]
43]: 'Hell'
44]: 5]
44]: ','
49]: 6:]
49]: 'world'
68]: 68]: 'Hello,world'
69]: reversed(69]: reversed 0x2d5c2d072]: ''.reversed(72]: 'dlrow,olleH'
2、字符串函数
2.1 通用操作
11]: 1,2,3,4,5]
13]: len(13]: 5
15]: 1 in 15]: True
在Python语言的设计哲学中,字符串、列表和元组具有一些共性,即他们都是元素的有序集合,python语言将对共性的操作提炼成了通用操作。因此,下标访问、序列切片操作、求长度和判断元素是否存在于集合中都是通过更加通用的函数和表达式提供支持。
2.2 与大小写相关的方法
以下是几个函数是与字符大小写相关的字符串处理函数:
1)upper:将字符串转换为大写;
2)lower:将字符串转换为小写;
3)isupper:判断字符串是否都为大写;
4)islower:判断字符串是否都为小写;
5)swapcase:将字符串中的大写转换为小写,小写转换为大写;
6)capitalize:将首字符转换为大写;
7)istitle:判断字符串是不是一个标题。
例子:
91]: "LAI MING XING".91]: 'lai ming xing'
92]: "LAI MING XING".92]: True
93]: "LAI MING XING".93]: 'lai ming xing'
95]: "lai ming xing".95]: 'Lai ming xing'
96]: "lai ming xing".96]: False
97]: "Lai Ming Xing".97]: True
18]: "Python".18]: True
19]: "Python 3.6".19]: False
20]: "Python 3.6".20]: False
21]: "\t\n".21]: True
23]: u"Python 3.6".23]: False
25]: u"36".25]: True
u"Python 3.6".isdecimal()
u/U:表示unicode字符串
不是仅仅是针对中文, 可以针对任何的字符串,代表是对字符串进行unicode编码。
一般英文字符在使用各种编码下, 基本都可以正常解析, 所以一般不带u;但是中文, 必须表明所需编码, 否则一旦编码转换就会出现乱码。
建议所有编码方式采用utf8
4、字符串方法startswith和endswith
startswith和endswith也是两个判断函数,用来判断方法的参数是否为字符串的前缀和后缀。
2]: import 4]: [ for in '.') if '.py') ]
4]: ['f.py', 'e.py', 'g.py']
5]: [ for in '.') if '.txt') ]
5]: ['d.txt', 'b.txt', 'a.txt', 'c.txt']
在我们的实际工作中,更多的时候可能需要前缀匹配:
6]: import 7]: for in '/var/log/') if 'message')]
8]: 8]: ['messages-20171231', 'messages']
9]: sum('/var/log',for in 10]: 10]: 526031
5、查找类函数
下面几个函数都是用来查找子串出现在字符串中的位置,他们之间的区别就是查找的方向不同,或者是处理异常情况的方式不同:
1)find:查找子串出现在字符串中的位置,如果查找失败,返回-1;
2)index:与find函数类似,如果查找失败,抛出ValueError异常;
3)rfind:与find函数类似,区别在于rfind是从后向前找;
4)findex:与index类似,区别在于rindex是从后向桥找。
例子:
40]: 40]: 'Return the lowest index in S where substring sub is found'
41]: 'in' in 41]: True
43]: 'indbbb' not in 43]: True
6、字符串操作方法
前面说过,python的字符串是不可变的,无法修改。如果要修改原来的字符串,可以对字符串执行修改操作,将修改后的字符串再赋值回原来的变量。
6.1 join函数
字符串的join函数用以连接字符串列表,组成一个新的、更大的字符串。
print('root','root','/bin/bash',':')
6.3 strip函数
strip:对字符串两边进行裁剪;
lstrip:对字符串左边进行裁剪;
rstrip:对字符串右边进行裁剪。
使用场景:strip函数使用最多的场景是去除字符串两边的空白字符,如下:
83]: "##Hello,world##"
84]: 84]: '##Hello,world##'
85]: '#')
85]: 'Hello,world'
86]: '####')
86]: 'Hello,world'
87]: 'H#d')
87]: 'ello,worl'
90]: 'dH#')
90]: 'ello,worl'
6.4、relapace函数
作用:将字符串的子串替换成另外一个新的子串:
93]: '193.252.243.232 - - [29/Mar/2009:06:05:34 +0200] "GET /index.php HTTP/1.1" 200 8741 "-" "Mozilla/5.0 (compatible; PJBot/3.0; +http://crawl.pagesjaunes.fr/robot)" "-" '
95]: 95]:
['193.252.243.232',
'-',
'-',
'[29/Mar/2009:06:05:34',
'+0200]',
'"GET',
'/index.php',
'HTTP/1.1"',
'200',
'8741',
'"-"',
'"Mozilla/5.0',
'(compatible;',
'PJBot/3.0;',
'+http://crawl.pagesjaunes.fr/robot)"',
'"-"']
97]: 0]
97]: '193.252.243.232'
98]: 6]
98]: '/index.php'
需求1:通过apache访问日志,统计PV和UV(pv是访问的访问请求数,uv是网站独立访客数)。
accesslog日志如下:
[# cat test.py
#!/usr/bin/python
#coding:utf-8
from import with open('/root/access.log') as for in 0])
print("PV is {0}".len(#下面我们将ips列表通过set关键字转换为集合,因为集合天生就就具有去重的功能。
print("UV is {0}".len(set(
以上就是“python的文本处理方法有哪些”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注亿速云行业资讯频道。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。