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 相关文章推荐
50行代码实现贪吃蛇(具体思路及代码)
Apr 27 Python
python连接mongodb操作数据示例(mongodb数据库配置类)
Dec 31 Python
python端口扫描系统实现方法
Nov 19 Python
Python基于PycURL自动处理cookie的方法
Jul 25 Python
速记Python布尔值
Nov 09 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
python2.x实现人民币转大写人民币
Jun 20 Python
基于python生成器封装的协程类
Mar 20 Python
pyqt5数据库使用详细教程(打包解决方案)
Mar 25 Python
python转化excel数字日期为标准日期操作
Jul 14 Python
python字典按照value排序方法
Dec 28 Python
Python中Selenium对Cookie的操作方法
Jul 09 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
php session_start()出错原因分析及解决方法
2013/10/28 PHP
php实现加减法验证码代码
2014/02/14 PHP
CI框架常用方法小结
2016/05/17 PHP
有关PHP 中 config.m4 的探索
2020/08/26 PHP
jquery 操作DOM案例代码分享
2012/04/05 Javascript
js自动闭合html标签(自动补全html标记)
2012/10/04 Javascript
AngularJS directive返回对象属性详解
2016/03/28 Javascript
基于JS实现无缝滚动思路及代码分享
2016/06/07 Javascript
Knockoutjs 学习系列(二)花式捆绑
2016/06/07 Javascript
vue.js绑定class和style样式(6)
2016/12/09 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
vue 实现 ios 原生picker 效果及实现思路解析
2017/12/06 Javascript
vue实现移动端input上传视频、音频
2020/08/18 Javascript
python使用新浪微博api上传图片到微博示例
2014/01/10 Python
详解python中 os._exit() 和 sys.exit(), exit(0)和exit(1) 的用法和区别
2017/06/23 Python
解决Mac安装scrapy失败的问题
2018/06/13 Python
Python中函数参数调用方式分析
2018/08/09 Python
从运行效率与开发效率比较Python和C++
2018/12/14 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python学习笔记之自定义函数用法详解
2019/06/08 Python
简单了解Python matplotlib线的属性
2019/06/29 Python
python 读取更新中的log 或其它文本方式
2019/12/24 Python
Python3自动生成MySQL数据字典的markdown文本的实现
2020/05/07 Python
python实现AHP算法的方法实例(层次分析法)
2020/09/09 Python
Python如何实现Paramiko的二次封装
2021/01/30 Python
css3中新增的样式使用示例附效果图
2014/08/19 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
上级检查欢迎词
2014/01/18 职场文书
违反交通法规检讨书
2014/09/10 职场文书
详细的本科生职业生涯规划范文
2014/09/16 职场文书
美国旅游签证工作证明
2014/10/14 职场文书
2015教师个人工作总结范文
2015/03/31 职场文书
客户经理岗位职责大全
2015/04/09 职场文书
goland 恢复已更改文件的操作
2021/04/28 Golang
python微信智能AI机器人实现多种支付方式
2022/04/12 Python