Python 合并多个TXT文件并统计词频的实现


Posted in Python onAugust 23, 2019

需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词

逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词频统计,得到最终结果。

代码如下:(在Windows 10,Python 3.7.4环境下运行通过)

# coding=utf-8

import re
import os

# 获取源文件夹的路径下的所有文件
sourceFileDir = 'D:\\Python\\txt\\'
filenames = os.listdir(sourceFileDir)

# 打开当前目录下的 result.txt 文件,如果没有则创建
# 文件也可以是其他类型的格式,如 result.js
file = open('D:\\Python\\result.txt', 'w')

# 遍历文件
for filename in filenames:
 filepath = sourceFileDir+'\\'+filename
 # 遍历单个文件,读取行数,写入内容
 for line in open(filepath):
  file.writelines(line)
  file.write('\n')

# 关闭文件
file.close()


# 获取单词函数定义
def getTxt():
 txt = open('result.txt').read()
 txt = txt.lower()
 txt = txt.replace(''', '\'')
 # !"@#$%^&*()+,-./:;<=>?@[\\]_`~{|}
 for ch in '!"'@#$%^&*()+,-/:;<=>?@[\\]_`~{|}':
  txt.replace(ch, ' ')
  return txt

# 1.获取单词
hamletTxt = getTxt()

# 2.切割为列表格式,'' 兼容符号错误情况,只保留英文单词
txtArr = re.findall('[a-z\''A-Z]+', hamletTxt)

# 3.去除所有遍历统计
counts = {}
for word in txtArr:
 # 去掉一些常见无价值词
 forbinArr = ['a.', 'the', 'a', 'i']
 if word not in forbinArr:
  counts[word] = counts.get(word, 0) + 1

# 4.转换格式,方便打印,将字典转换为列表,次数按从大到小排序
countsList = list(counts.items())
countsList.sort(key=lambda x: x[1], reverse=True)

# 5. 输出结果
for i in range(10):
 word, count = countsList[i]
 print('{0:<10}{1:>5}'.format(word, count))

效果如下图:

Python 合并多个TXT文件并统计词频的实现

另一种更简单的统计词频的方法:

# coding=utf-8
from collections import Counter

# words 为读取到的结果 list
words = ['a', 'b' ,'a', 'c', 'v', '4', ',', 'w', 'y', 'y', 'u', 'y', 'r', 't', 'w']
wordCounter = Counter(words)
print(wordCounter.most_common(10))

# output: [('y', 3), ('a', 2), ('w', 2), ('b', 1), ('c', 1), ('v', 1), ('4', 1), (',', 1), ('u', 1), ('r', 1)]

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 字符串操作方法大全
Mar 11 Python
Python 异常处理实例详解
Mar 12 Python
Python中实现的RC4算法
Feb 14 Python
Python图形绘制操作之正弦曲线实现方法分析
Dec 25 Python
TensorFlow实现随机训练和批量训练的方法
Apr 28 Python
django2.2安装错误最全的解决方案(小结)
Sep 24 Python
Python异步编程之协程任务的调度操作实例分析
Feb 01 Python
解决Django中checkbox复选框的传值问题
Mar 31 Python
解决reload(sys)后print失效的问题
Apr 25 Python
python 实现分组求和与分组累加求和代码
May 18 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
TensorFlow的环境配置与安装方法
Feb 20 Python
Python 调用 Windows API COM 新法
Aug 22 #Python
详解Python文件修改的两种方式
Aug 22 #Python
详解python中的生成器、迭代器、闭包、装饰器
Aug 22 #Python
python支付宝支付示例详解
Aug 22 #Python
关于python3中setup.py小概念解析
Aug 22 #Python
python3 requests库文件上传与下载实现详解
Aug 22 #Python
python3使用print打印带颜色的字符串代码实例
Aug 22 #Python
You might like
php SQL之where语句生成器
2009/03/24 PHP
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
Zend Framework教程之Zend_Form组件实现表单提交并显示错误提示的方法
2016/03/21 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
prototype Element学习笔记(篇一)
2008/10/26 Javascript
jquery 定位input元素的几种方法小结
2013/07/28 Javascript
jquery fancybox ie6不显示关闭按钮的解决办法
2013/12/25 Javascript
JavaScript异步回调的Promise模式封装实例
2014/06/07 Javascript
详解JavaScript中Hash Map映射结构的实现
2016/05/21 Javascript
JS实现的简单拖拽功能示例
2017/03/13 Javascript
简单的JS控制button颜色随点击更改的实现方法
2017/04/17 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
vue使用exif获取图片经纬度的示例代码
2020/12/11 Vue.js
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python抖音表白程序源代码
2019/04/07 Python
python批量下载抖音视频
2019/06/17 Python
pycharm全局搜索的具体步骤
2020/07/28 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
Joules美国官网:出色的英国风格
2017/10/30 全球购物
日本最佳原创设计品牌:Felissimo(芬理希梦)
2019/03/19 全球购物
波兰家居和花园家具专家:4Home
2019/05/26 全球购物
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
大学生职业规划范文:象牙塔生活的四年计划
2014/01/14 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
计划生育诚信协议书
2014/11/02 职场文书
庆六一开幕词
2015/01/29 职场文书
护士求职自荐信范文
2015/03/04 职场文书
在校生证明
2015/06/17 职场文书
田径运动会广播稿
2015/08/19 职场文书
聘任通知书
2015/09/21 职场文书
小学教师暑期培训心得体会
2016/01/09 职场文书
干部外出学习心得体会
2016/01/18 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
Golang 入门 之url 包
2022/05/04 Golang