今天小編給大家分享一下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]: 5260315、查找類函數
下面幾個函數都是用來查找子串出現在字符串中的位置,他們之間的區別就是查找的方向不同,或者是處理異常情況的方式不同:
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進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。