需求是:针对三篇英文文章进行分析,计算出现次数最多的 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))

效果如下图:

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

# 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合并两个txt列_Python 合并多个TXT文件并统计词频的实现相关推荐

  1. R语言数据纵向合并rbind函数实战(以及rbind.fill函数合并两个数据列不同的dataframe)

    R语言数据纵向合并rbind函数实战(以及rbind.fill函数合并两个数据列不同的dataframe) 目录

  2. php 合并两个数组并去重,合并两个数组 以KEY 作为键

    $a= array( array( 'ID'=> 2 ) ); $b= array( array( 'ID'=> 5656 ) ); print_r($r); //合并两个数组 以ID值 ...

  3. python合并两个有序列表_Python实现合并两个有序链表的方法示例

    本文实例讲述了Python实现合并两个有序链表的方法.分享给大家供大家参考,具体如下: 思路:先选出第一个节点,然后遍历两个链表,把小的作为当前节点的下一个节点,一直到其中一个链表遍历完,这时候把另一 ...

  4. python如何打开txt文件、并算词频_Python 合并多个TXT文件并统计词频的实现

    需求是:针对三篇英文文章进行分析,计算出现次数最多的 10 个单词 逻辑很清晰简单,不算难, 使用 python 读取多个 txt 文件,将文件的内容写入新的 txt 中,然后对新 txt 文件进行词 ...

  5. python删除csv某一列_python csv 删除列

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 我的input.csv看起来是这样的: day,month,year,lat,l ...

  6. 合并两个无序数组java_88. 合并两个有序数组

    88. 合并两个有序数组 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. 说明: 初始化 nums1 和 nums2的 ...

  7. mac怎么合并两个容器_Mac怎么合并文件夹?macz不容错过的苹果mac教程分享

    关于合并文件夹,与Windows操作不同的是:Mac中很可能会出现文件丢失. 因为它对相同名称文件的实际操作是替换而不是另命名复制!你的Mac电脑是否有重复文件想要合并?想了解Mac电脑合并文件夹而不 ...

  8. 合并两个有序数组python_合并两个有序数组.py

    # 合并两个有序数组 # 给你两个有序整数数组 nums1 和 nums2,请你将 nums2 合并到 nums1 中,使 nums1 成为一个有序数组. # # 说明: # 初始化 nums1 和 ...

  9. python比较两个数的和_Python中的is和==比较两个对象的两种方法

    Python中的is和==比较两个对象的两种方法 在Python中有两种方式比较两个对象是否相等,分别是is和==,两者之间是不同的 ==比较的是值(如同java中的equals方法) is比较的是引 ...

最新文章

  1. 《Redis in action》读书笔记
  2. 学习笔记——深拷贝与浅拷贝
  3. 第五章 初始jQuery
  4. - The superclass javax.servlet.http.HttpServlet was not found on the Java
  5. linuxMint下安装ftp工具--filezilla
  6. 使用supervisord 来守护 nginx进程
  7. treelistview 所有节点失去焦点_垃圾询盘过滤,焦点科技的 Milvus 实践
  8. Qt工作笔记-对setupUi(this)进一步理解
  9. (王道408考研数据结构)第三章栈和队列-第二节:队列基本概念、顺序栈和链栈基本操作
  10. java初学者应该怎么学?
  11. 微软要解决癌症问题?
  12. 《基于MFC的OpenGL编程》Part 7 Animation
  13. Mysql调优(updating~)
  14. pythonfor循环100次_Python之for循环
  15. 力扣(566.303)补8.25
  16. Dynamodb 备份策略
  17. 二叉搜索树最近公共祖先二叉树最近公共祖先
  18. bean覆盖 springboot_如何在@SpringBootTest中使用Mock覆盖bean?
  19. oracle 委外发料,委外发料管理
  20. Scrapy框架之Crawlspider的使用

热门文章

  1. 中国分光计市场现状研究分析与发展前景预测报告(2022)
  2. 12个优秀的国外Material Design网站案例
  3. 南昌航空大学 c语言,南昌航空大学C语言末考试试卷.doc
  4. 小白入坑【文献阅读】之前需要知道的软件、网站、常识
  5. PHP利用Java+JasperReport生成PDF快递单
  6. 关于c51如何使用左移_crol_、右移_cror_函数
  7. 《雷达目标特性》 学习笔记(二)
  8. 深度好文 | 带你了解「无代码开发」发展始末,建议收藏
  9. 四川大学计算机学院2021年保研名单,四川大学2021年推免保研数据
  10. mysql怎么做每天签到_PHP+MYSQL+AJAX实现每日签到功能