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 相关文章推荐
SublimeText 2编译python出错的解决方法(The system cannot find the file specified)
Nov 27 Python
python 解析XML python模块xml.dom解析xml实例代码
Feb 07 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
python之文件的读写和文件目录以及文件夹的操作实现代码
Aug 28 Python
Python字符编码与函数的基本使用方法
Sep 30 Python
Python生成任意范围任意精度的随机数方法
Apr 09 Python
python之拟合的实现
Jul 19 Python
python函数中将变量名转换成字符串实例
May 11 Python
python 实现 hive中类似 lateral view explode的功能示例
May 18 Python
Python在字符串中处理html和xml的方法
Jul 31 Python
Python xmltodict模块安装及代码实例
Oct 05 Python
python 获取剪切板内容的两种方法
Nov 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
《Pokemon Sword·Shield》系列WEB动画《薄明之翼》第2话声优阵容公开!
2020/03/06 日漫
一个PHP+MSSQL分页的例子
2006/10/09 PHP
PHP教程之PHP中shell脚本的使用方法分享
2012/02/23 PHP
PHP5常用函数列表(分享)
2013/06/07 PHP
通过php修改xml文档内容的方法
2015/01/23 PHP
你应该知道PHP浮点数知识
2015/05/13 PHP
微信公众平台开发(五) 天气预报功能开发
2016/12/03 PHP
PHP中SQL查询语句的id=%d解释(推荐)
2016/12/10 PHP
FileUpload上传图片(图片不变形)
2010/08/05 Javascript
jQuery操作元素css样式的三种方法
2014/06/04 Javascript
javascript模拟实现ajax加载框实例
2014/10/15 Javascript
项目中常用的JS方法整理
2015/01/30 Javascript
JS实现图片放大镜效果的方法
2015/02/27 Javascript
cocos2dx骨骼动画Armature源码剖析(一)
2015/09/08 Javascript
JS HTML5拖拽上传图片预览
2016/07/18 Javascript
Vue.js每天必学之指令系统与自定义指令
2016/09/07 Javascript
bootstrap插件treeview实现全选父节点下所有子节点和反选功能
2017/07/21 Javascript
Node.js Express安装与使用教程
2018/05/11 Javascript
JavaScript canvas实现文字时钟
2021/01/10 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
在Python的Django框架中simple-todo工具的简单使用
2015/05/30 Python
python学习笔记--将python源文件打包成exe文件(pyinstaller)
2018/05/26 Python
利用Pyhton中的requests包进行网页访问测试的方法
2018/12/26 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
python实现学生信息管理系统源码
2021/02/22 Python
高校十八大报告感想
2014/01/27 职场文书
国贸专业毕业求职信
2014/06/11 职场文书
乡镇组织委员个人整改措施
2014/09/16 职场文书
2015年派出所工作总结
2015/04/24 职场文书
高中班主任寄语
2019/06/21 职场文书
深入浅析React中diff算法
2021/05/19 Javascript
详解Python描述符的工作原理
2021/06/11 Python
JavaScript与JQuery框架基础入门教程
2021/07/15 Javascript
教你使用VS Code的MySQL扩展管理数据库的方法
2022/01/22 MySQL
golang用type-switch判断interface的实际存储类型
2022/04/14 Golang