Python实现统计文本中的字符数量

 更新时间:2023年05月26日 10:22:19   作者:Python 集中营  
这篇文章主要为大家详细介绍了如何利用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

到此这篇关于Python实现统计文本中的字符数量的文章就介绍到这了,更多相关Python统计文本字符数量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python字符串的转义字符

    Python字符串的转义字符

    这篇文章主要介绍了Python字符串的转义字符,转义字符是指,用一些普通字符的组合来代替一些特殊字符,由于其组合改变了原来字符表示的含义,下文相关资料需要的小伙伴可以参考一下
    2022-04-04
  • Python中torch.norm()用法解析

    Python中torch.norm()用法解析

    本文主要介绍了Python中torch.norm()用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • python中with的具体用法

    python中with的具体用法

    本文主要介绍了python中with的基本使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • 基于Python制作一个图片色卡提取器

    基于Python制作一个图片色卡提取器

    在一些特殊的业务场景中,我们需要一次性提取一张图片中的色卡信息,并且需要使用十六进制的颜色表示方法进行展示。本文就来用Python做个图片色卡提取器,感兴趣的可以尝试一下
    2022-12-12
  • Python编程之Re模块下的函数介绍

    Python编程之Re模块下的函数介绍

    这篇文章主要介绍了Python编程之Re模块下的函数介绍,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • 关于Numpy中argsort()函数的用法解读

    关于Numpy中argsort()函数的用法解读

    这篇文章主要介绍了关于Numpy中argsort()函数的用法解读,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-06-06
  • Python实现图像尺寸和格式转换处理的示例详解

    Python实现图像尺寸和格式转换处理的示例详解

    这篇文章主要为大家详细介绍了如何利用Python实现图像尺寸获取和格式转换处理的功能,文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-04-04
  • Python利用AutoGrad实现自动计算函数斜率和梯度

    Python利用AutoGrad实现自动计算函数斜率和梯度

    AutoGrad 是一个老少皆宜的 Python 梯度计算模块。对于大学生、机器学习爱好者而言,你只需要传递给它Numpy这样的标准数据库下编写的损失函数,它就可以自动计算损失函数的导数(梯度)。本文将从普通斜率计算开始,介绍到如何只使用它来实现一个逻辑回归模型
    2022-07-07
  • 在Gnumeric下使用Python脚本操作表格的教程

    在Gnumeric下使用Python脚本操作表格的教程

    这篇文章主要介绍了在Gnumeric下使用Python脚本操作表格的教程,本文来自于IBM官方网站,需要的朋友可以参考下
    2015-04-04
  • Python中os模块的简单使用及重命名操作

    Python中os模块的简单使用及重命名操作

    这篇文章主要给大家介绍了关于Python中os模块的简单使用及重命名操作的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-04-04

最新评论