Python实现统计文本中的字符数量
作者:Python 发布时间:2021-01-28 00:27:04
标签:Python,统计,字符
最近,由于工作需要统计一下文本文档中的各种不同类字符的数量。将txt文本文档中包含的的中文、英文、数字等字符数量进行统计。
这当然可以使用python的自动化来完成操作,其实采用python字符串自带的大多数函数就能够完成功能。
由于统计英文字符的需要,这里需要导入string内置模块,以及os等文件操作模块就能够轻松完成。
import string # string内置模块
import os # os文件操作模块
首先,需要开发一个函数用来完成对一个普通的字符串中的各种不同类型的字符进行统计,如下代码所示:
def count_string(str_=None):
count_en = count_dg = count_sp = count_zh = count_pu = 0
if str_ is None:
print("字符串str_为空!")
return count_en, count_dg, count_sp, count_zh, count_pu
for st in str_:
# 英文
if st in string.ascii_letters:
count_en += 1
# 数字
elif st.isdigit():
count_dg += 1
# 空格
elif st.isspace():
count_sp += 1
# 中文
elif st.isalpha():
count_zh += 1
# 特殊字符
else:
count_pu += 1
print("字符串str_:", str_)
return count_en, count_dg, count_sp, count_zh, count_pu
上面的count_string函数已经实现了可以对某个字符串中的不同字符数量进行统计。
接下来,需要读取我们的txt文本文档,然后对其中每一行的字符串进行统计。从而可以获取整个文档中的不同字符的数量分别是多少。
代码如下:
def read_text(text_path=None):
count_en_all = count_dg_all = count_sp_all = count_zh_all = count_pu_all = 0
if text_path is None:
print('文本文档的路径不能为空!')
return
if not os.path.isfile(text_path):
print('文本文档的路径不存在,请重新输入!')
return
with open(text_path, 'r', encoding='utf-8') as file_:
for line_ in file_.readlines():
if line_.strip() != '':
count_en, count_dg, count_sp, count_zh, count_pu = count_string(line_)
count_en_all = count_en_all + count_en
count_dg_all = count_dg_all + count_dg
count_sp_all = count_sp_all + count_sp
count_zh_all = count_zh_all + count_zh
count_pu_all = count_pu_all + count_pu
print('当前文本文档{},结果统计如下:'.format(text_path))
print('英文字符:', count_en_all)
print('数字:', count_dg_all)
print('空格:', count_sp_all)
print('中文:', count_zh_all)
print('特殊字符:', count_pu_all)
最后,我们通过调用read_text文本文档处理函数,即可统计出当前文档所有的不同字符的数量。
read_text('D:/test-data-work/data.txt')
# 当前文本文档D:/test-data-work/data.txt,结果统计如下:
# 英文字符:108
# 数字:209
# 空格:53
# 中文:288
# 特殊字符:90
若是需要批量操作,则可以使用python遍历文件夹的方式,对每个文档进行逐一统计。
这里可以使用os.listdir函数对文件夹进行简单的遍历操作。
for file_name in os.listdir('dir_path'):
pass
来源:https://mp.weixin.qq.com/s/zifoO0kXga472n4J61XNsg


猜你喜欢
- 游标的使用提到游标这个词,人们想到的是在屏幕上一个闪动的方框,用以指示用户将要输入字符的位置。而在关系型数据库的SQL语言中,游标却有另外的
- replace()最简单的算是能力就是简单的字符替换。示例代码如下: <script language="javascrip
- CSS命名规范一.文件命名规范全局样式:global.css;框架布局:layout.css;字体样式:font.css;链接样式:link
- python的多线程比较鸡肋,优先使用多进程1 基础知识现在的 PC 都是多核的,使用多线程能充分利用 CPU 来提供程序的执行效率。1.1
- 我就废话不多说了,直接上代码吧!#!/usr/bin/env python# coding:UTF-8"""@
- Pandas Shift函数基础在使用Pandas的过程中,有时会遇到shift函数,今天就一起来彻底学习下。先来看看帮助文档是怎么说的:&
- 计算字符串中所有数字的和,字符串中有数字和字母组合而成如果出现连续数字,按照一个数操作具体解释在代码行里:def sum_str(str1)
- 本文介绍了如何在pytorch下搭建AlexNet,使用了两种方法,一种是直接加载预训练模型,并根据自己的需要微调(将最后一层全连接层输出由
- 说到排序,很多人可能第一想到的就是sorted,但是你可能不知道python中其实还有还就中方法哟,并且好多种场景下效率都会比sorted高
- MySQL5的乱码问题可以用下面的方法解决:1.设置phpMyAdmin Language:Chinese simplified (zh-u
- MySQL分页分析原理及提高效率PERCONA PERFORMANCE CONFERENCE 2009上,来自雅虎的几位工程师带来了一篇”E
- 前言前段时间看到有人问如何使用Python实现多张图片组成文字的效果?觉得还挺有意思,于是尝试做了一下,刚好赶上端午节,所以打算从网上下载1
- Numpy学习1 Numpy 介绍与应用1-1Numpy是什么NumPy 是一个运行速度非常快的数学库,一个开源的的python科学计算库,
- 我们前期开发了一个只有公司客服人员才能使用的系统——有限的几个客服人员。就是这有限的几个客服人员前几天突然就提出这样的问题:我们每隔很短一段
- 今天在学习dubbo-go的时候,下载了dubbo-go的example,依赖的包太多了,之前都是手动下载某个依赖的包,现在手动一个一个 g
- 相比于原生的python开发核心包,Anaconda已经集成了许多的第三方库,但是这在实际应用中是远远不够的,因此我们需要手动安装第三方库使
- picker-view 相关文章:微信小程序 Button 微信小程序 radio 微信小程序 slider 微信小程序 switch微信小
- OpenCV图像处理一、图像入门1.读取图像使用 cv.imread() 函数读取一张图像,图片应该在工作目录中,或者应该提供完整的图像路径
- 1 回表的性能消耗无论单列索引 还是 联合索引,一个索引就对应一个独立的B+索引树,索引树节点仅包含:索引里的字段值主键值即使根据索引树按条
- 前言在前面两篇文章中 初见 Go Mutex 、Go Mutex 源码详解,我们学习了 Go语言 中