用python统计《西游记》字数

一、目标

统计《西游记》文本中:
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()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值