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 相关文章推荐
python 实现堆排序算法代码
Jun 05 Python
使用Python编写简单网络爬虫抓取视频下载资源
Nov 04 Python
python创建临时文件夹的方法
Jul 06 Python
开始着手第一个Django项目
Jul 15 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 Python
python线程中同步锁详解
Apr 27 Python
python中实现字符串翻转的方法
Jul 11 Python
实例详解Python模块decimal
Jun 26 Python
python使用socket实现的传输demo示例【基于TCP协议】
Sep 24 Python
Python利用matplotlib绘制折线图的新手教程
Nov 05 Python
利用Opencv实现图片的油画特效实例
Feb 28 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 文件编程综合案例-文件上传的实现
2013/07/03 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
Zend Framework动作助手Url用法详解
2016/03/05 PHP
PHP屏蔽关键字实现方法
2016/11/17 PHP
利用PHPExcel实现Excel文件的写入和读取
2017/04/26 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
2020/02/21 PHP
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
通过XMLHttpRequest和jQuery实现ajax的几种方式
2015/08/28 Javascript
7个去伪存真的JavaScript面试题
2016/01/07 Javascript
详解create-react-app 自定义 eslint 配置
2018/06/07 Javascript
layer关闭弹出窗口触发表单提交问题的处理方法
2019/09/25 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
原生JavaScript实现的无缝滚动功能详解
2020/01/17 Javascript
[33:17]OG vs VGJ.T 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python实现的检测网站挂马程序
2014/11/30 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
详解Python 数据库 (sqlite3)应用
2016/12/07 Python
Sanic框架请求与响应实例分析
2018/07/16 Python
python删除文件夹下相同文件和无法打开的图片
2019/07/16 Python
Django框架视图介绍与使用详解
2019/07/18 Python
如何利用python给图片添加半透明水印
2019/09/06 Python
Windows10下Tensorflow2.0 安装及环境配置教程(图文)
2019/11/21 Python
8款使用 CSS3 实现超炫的 Loading(加载)的动画效果
2015/03/17 HTML / CSS
澳大利亚女装精品店:Alannah Hill
2020/07/29 全球购物
AJAX的全称是什么
2012/11/06 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
九年级语文教学反思
2014/02/04 职场文书
顶撞老师检讨书
2014/02/07 职场文书
《母鸡》教学反思
2014/02/25 职场文书
升职演讲稿范文
2014/05/23 职场文书
出生医学证明书
2014/09/15 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
大学生见习总结报告
2015/06/24 职场文书