Python文本统计功能之西游记用字统计操作示例


Posted in Python onMay 07, 2018

本文实例讲述了Python文本统计功能之西游记用字统计操作。分享给大家供大家参考,具体如下:

一、数据

xyj.txt,《西游记》的文本,2.2MB

致敬吴承恩大师,4020行(段)

二、目标

统计《西游记》中:

1. 共出现了多少个不同的汉字;
2. 每个汉字出现了多少次;
3. 出现得最频繁的汉字有哪些。

三、涉及内容:

1. 读文件;
2. 字典的使用;
3. 字典的排序;
4. 写文件

四、效果

Python文本统计功能之西游记用字统计操作示例

五、源代码

# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding("utf8")
fr = open('xyj.txt', 'r')
characters = []
stat = {}
for line in fr:
  # 去掉每一行两边的空白
  line = line.strip()
  # 如果为空行则跳过该轮循环
  if len(line) == 0:
    continue
  # 将文本转为unicode,便于处理汉字
  line = unicode(line)
  # 遍历该行的每一个字
  for x in xrange(0, len(line)):
    # 去掉标点符号和空白符
    if line[x] in [' ','', '\t', '\n', '。', ',', '(', ')', '(', ')', ':', '□', '?', '!', '《', '》', '、', ';', '“', '”', '……']:
      continue
    # 尚未记录在characters中
    if not line[x] in characters:
      characters.append(line[x])
    # 尚未记录在stat中
    if not stat.has_key(line[x]):
      stat[line[x]] = 0
    # 汉字出现次数加1
    stat[line[x]] += 1
print len(characters)
print len(stat)
# lambda生成一个临时函数
# d表示字典的每一对键值对,d[0]为key,d[1]为value
# reverse为True表示降序排序
stat = sorted(stat.items(), key=lambda d:d[1], reverse=True)
fw = open('result.csv', 'w')
for item in stat:
  # 进行字符串拼接之前,需要将int转为str
  fw.write(item[0] + ',' + str(item[1]) + '\n')
fr.close()
fw.close()
Python 相关文章推荐
CentOS 7下Python 2.7升级至Python3.6.1的实战教程
Jul 06 Python
Python基于回溯法子集树模板解决马踏棋盘问题示例
Sep 11 Python
Python安装Numpy和matplotlib的方法(推荐)
Nov 02 Python
Python使用requests发送POST请求实例代码
Jan 25 Python
Python2.7 实现引入自己写的类方法
Apr 29 Python
python 运用Django 开发后台接口的实例
Dec 11 Python
python 内置模块详解
Jan 01 Python
python 标准差计算的实现(std)
Jul 29 Python
python GUI库图形界面开发之PyQt5复选框控件QCheckBox详细使用方法与实例
Feb 28 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python使用自定义钉钉机器人的示例代码
Jun 24 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
Dec 13 Python
Python中的函数作用域
May 07 #Python
Php多进程实现代码
May 07 #Python
Python格式化输出%s和%d
May 07 #Python
python获取代理IP的实例分享
May 07 #Python
对python使用http、https代理的实例讲解
May 07 #Python
python3 requests中使用ip代理池随机生成ip的实例
May 07 #Python
python使用代理ip访问网站的实例
May 07 #Python
You might like
PHP设计聊天室步步通
2006/10/09 PHP
用PHP和ACCESS写聊天室(五)
2006/10/09 PHP
php GD绘制24小时柱状图
2008/06/28 PHP
php print EOF实现方法
2009/05/21 PHP
jQuery+Ajax+PHP“喜欢”评级功能实现代码
2015/10/08 PHP
学习php设计模式 php实现原型模式(prototype)
2015/12/07 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
PHP实现链式操作的原理详解
2016/09/16 PHP
IE不出现Flash激活框的小发现的js实现方法
2007/09/07 Javascript
jQuery UI AutoComplete 使用说明
2011/06/20 Javascript
Javascript弹出窗口的各种方法总结
2013/11/11 Javascript
js动态修改input输入框的type属性(实现方法解析)
2013/11/13 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
jquery显示隐藏input对象
2014/07/21 Javascript
利用JQuery写一个简单的异步分页插件
2016/03/07 Javascript
实现一个简单的vue无限加载指令方法
2017/01/10 Javascript
jQuery插件FusionCharts绘制的2D双面积图效果示例【附demo源码】
2017/04/11 jQuery
Es6 Generator函数详细解析
2018/02/24 Javascript
解决vue单页使用keep-alive页面返回不刷新的问题
2018/03/13 Javascript
angular2组件中定时刷新并清除定时器的实例讲解
2018/08/31 Javascript
Python实现将一个大文件按段落分隔为多个小文件的简单操作方法
2017/04/17 Python
Python爬虫实现爬取百度百科词条功能实例
2019/04/05 Python
python模拟实现分发扑克牌
2020/04/22 Python
python框架flask入门之路由及简单实现方法
2020/06/07 Python
浅谈CSS3动画的回调处理
2016/07/21 HTML / CSS
CSS3.0实现霓虹灯按钮动画特效的示例代码
2021/01/12 HTML / CSS
html5 制作地图当前定位箭头的方法示例
2020/01/10 HTML / CSS
世界汽车零件:World Car Parts
2019/09/04 全球购物
数控技术专业毕业自荐书范文
2014/02/05 职场文书
《争吵》教学反思
2014/02/15 职场文书
高三家长寄语
2014/04/03 职场文书
《北大荒的秋天》教学反思
2014/04/14 职场文书
民事诉讼代理委托书
2014/10/08 职场文书
一般纳税人申请报告
2015/05/18 职场文书
详解Python requests模块
2021/06/21 Python
Python+Tkinter制作专属图形化界面
2022/04/01 Python