统计文本中的单词数的简单脚本

最近在学习python,后面遇到课本上的一个例子,是一个统计文本当中单词数的简单脚本,源代码如下:

 

# !/usr/bin/python
# -*- coding:utf-8 -*-

#somescript.py
#统计sys.stdin中单词数的简单脚本

import sys
text = sys.stdin.read()
words = text.split()
wordcount = len(words)
print 'Wordcount:',wordcount

 后面我回头觉得这个例子不太好,它只以空格来分割单词,但是面临这样的一种例子:

Your mother was a hamster , and your
father smelled of elderberries.

明明是11个单词,但是会输出12个,因为它把逗号也变成了一个单词。

所以我想到了可以使用re模块的sub函数来优化这个例子,我先吧文本中的标点符号全部用空格来替换(考虑过删掉,但万一单词因此连接在一起就悲剧了)

然后后面的继续按着原来的方法处理:

代码如下:

# !/usr/bin/python
# -*- coding:utf-8 -*-

#somescript.py
#统计sys.stdin中单词数的简单脚本

import sys
import re   #导入模块
text = sys.stdin.read()
pat = r'[.?\-",]+'
temp = re.sub(pat,' ',text)
words = temp.split()
wordcount = len(words)
print 'Wordcount:',wordcount

 这样的话,看一下啊:

正确了!!

posted @ 2013-09-06 17:30  中大黑熊  阅读(755)  评论(1编辑  收藏  举报