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
0
投稿
猜你喜欢
- 前言在AI领域,来快速实现一个idea:前后端开发+部署+展现,如果走传统的前后端分离开发+服务器docker部署等方式,会很重且入门成本很
- Notepad++是一款不错的编辑器,很轻巧,我很喜欢它。再换个主题,加个代码高亮,看上去就更专业了。如果你是Mac用户,应该听说或使用过T
- 这个只是一个简单的比较无聊的尝试,类似blog等一些网站的换肤功能都是以此方式改变网站的皮肤。对于这些方法大家会的比较多,没啥说的。主要我是
- CSS 3 + HTML 5 是未来的 Web,它们都还没有正式到来,虽然不少浏览器已经开始对它们提供部分支持。本文介绍了 5 个 CSS3
- 1.如果有ID字段,就是具有唯一性的字段 代码如下:delect table where id not in ( select max(id
- 在防止sql注入这些细节出现问题的一般是那些大意的程序员或者是新手程序员,他们由于没有对用户提交过来的数据进行一些必要的过滤,从而导致了给大
- 说到Javascript的类继承,就必然离不开原型链,但只通过原型链实现的继承有着不少缺陷。无参数类继承的问题先看一段示例代码,实现B继承于
- sklearn的cross_validation包中含有将数据集按照一定的比例,随机划分为训练集和测试集的函数train_test_spli
- 如何在ADO中使用SQL函数?代码见下:<%Set conn1 = Server.CreateObjec
- 在linux服务器部署thinkphp5的时候PHP报了Warning: require(): open_basedir restricti
- 一、介绍QQ空间相册的个性化利器,能对照片进行效果的优化、文字编辑等等。从设计上使用了创新的手法,尽量减少用户的思考。其中,通过界面的特殊表
- 本文实例讲述了Python变量、数据类型、数据类型转换相关函数用法。分享给大家供大家参考,具体如下:python变量的使用不需要进行类型声明
- 最近发现一个叫 Bootstrap 的好东西,Bootstrap 是现在最流行的响应式 CSS 框架,它以移动设备优先,能够快速适应不同设备
- 从ASP初入门到PHP,感觉到PHP的强大之一就是内置函数的丰富,比如先前学习的PHP日期时间函数,读写文件的相关函数等都无不表明了PHP的
- 1.双击setup.exe.(出现安装向导界面) 2.在安装向导界面:选"基本安装",并选好主目录位置;创建启动数据库(
- 如何在服务器端调用winzip命令行对上传的多个文件打包压缩?要解决这个问题,首先要了解一下Windows Scripting Host,简
- 特点:不需要另外加个清除DIV:after(伪对象)--设置在对象后发生的内容,通常和content配合使用,IE不支持此伪对象,非Ie 浏
- 直接看代码: 代码如下:Class GoogleTranslator sub Class_Initialize
- 今天登录社区的时候看到有之前的文章有个留言的评论,说如何统计typecho所有文章的字数,这里分享一下代码。在当前主题的functions.
- 支持聚合函数的方法:提到聚合函数,首先我们要知道的就是这些聚合函数是不能在django中单独使用的,要想在django中使用这些聚合函数,就