一、目标
统计《西游记》文本中:
1.共出现了多少个不同的汉字;
2.每个汉字出现了多少次;
3.出现次数频繁的汉字有哪些;
4.将统计结果保存到json文件中。
二、涉及内容
1. 读文件
2. 字典的使用
3. 字典的排序
4. 写文件
三、实现过程
1.读取文件 xiyouji.txt
import sys
import importlib
importlib.reload(sys)
fr=open('xiyouji.txt','r',encoding='utf_8')
2.字符操作
characters=[]
stat={}
for line in fr:
line=line.strip()
if len(line)==0:
continue
#print type(line)
line=str(line)
3.用正则化表达式做判断来去除标点符号等特殊字符
for x in range(0,len(line)):
if line[x] in [' ', '\t', '\n', u'。', u',', '(', ')', '(', ')', u':', u',', u'?', u'!', u'《', u'》', u'、', u';', '“', '”', '……']:
continue
if not line[x] in characters:
characters.append(line[x])
if not stat.__contains__(line[x]):
stat[line[x]]=0
stat[line[x]]+=1
4.输出统计信息并保存到.json文件中
print(len(characters))
print(len(stat))
stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)
fw=open('xiyouji.json','w')
for item in stat:
fw.write(item[0]+':'+str(item[1])+'\n')
fw.close()
fr.close()