本文实例讲述了Python实现简单文本字符串处理的方法。分享给大家供大家参考,具体如下:
对于一个文本字符串,可以使用Python的string.split()
方法将其切割。下面看看实际运行效果。
1
2
|
mySent = 'This book is the best book on python!' print mySent.split() |
输出:
1
|
[ 'This' , 'book' , 'is' , 'the' , 'best' , 'book' , 'on' , 'python!' ] |
可以看到,切分的效果不错,但是标点符号也被当成了词,可以使用正则表达式来处理,其中分隔符是除单词、数字外的任意字符串。
1
2
3
4
5
|
import re reg = re. compile ( '\\W*' ) mySent = 'This book is the best book on python!' listof = reg.split(mySent) print listof |
输出为:
1
|
[ 'This' , 'book' , 'is' , 'the' , 'best' , 'book' , 'on' , 'python' , ''] |
现在得到了一系列词组成的词表,但是里面的空字符串需要去掉。
可以计算每个字符串的长度,只返回大于0的字符串。
1
2
3
4
5
6
|
import re reg = re. compile ( '\\W*' ) mySent = 'This book is the best book on python!' listof = reg.split(mySent) new_list = [tok for tok in listof if len (tok)> 0 ] print new_list |
输出为:
1
|
[ 'This' , 'book' , 'is' , 'the' , 'best' , 'book' , 'on' , 'python' ] |
最后,发现句子中的第一个字母是大写的。我们需要同一形式,把大写转化为小写。Python内嵌的方法,可以将字符串全部转化为小写(.lower()
)或大写(.upper()
)
1
2
3
4
5
6
|
import re reg = re. compile ( '\\W*' ) mySent = 'This book is the best book on python!' listof = reg.split(mySent) new_list = [tok.lower() for tok in listof if len (tok)> 0 ] print new_list |
输出为:
1
|
[ 'this' , 'book' , 'is' , 'the' , 'best' , 'book' , 'on' , 'python' ] |
下面来看一封完整的电子邮件:
内容
1
2
3
4
5
6
7
8
|
Hi Peter, With Jose out of town, do you want to meet once in a while to keep things going and do some interesting stuff? Let me know Eugene |
1
2
3
4
5
6
|
import re reg = re. compile ( '\\W*' ) email = open ( 'email.txt' ).read() list = reg.split(email) new_txt = [tok.lower() for tok in list if len (tok)> 0 ] print new_txt |
输出:
希望本文所述对大家Python程序设计有所帮助。
原文链接:http://www.cnblogs.com/lovephysics/p/7238479.html