统计文本中的单词数的简单脚本
最近在学习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
这样的话,看一下啊:
正确了!!