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多进程与多线程适用场景案例分析

    本文介绍了多线程和多进程各自的适用场景和特点,并通过具体案例进行说明,多线程适用于IO密集型任务,如爬虫、文件读写等,而多进程适用于CPU密集型任务,如矩阵运算、数据挖掘等,感兴趣的朋友跟随小编一起看看吧
    2026-01-01
  • Python分支结构和循环结构示例代码

    Python分支结构和循环结构示例代码

    在Python中,分支结构通过if、elif和else关键字来实现条件判断,在使用if语句时,程序会根据条件表达式的真假执行相应的代码块,这篇文章主要介绍了Python分支结构和循环结构,需要的朋友可以参考下
    2024-03-03
  • Python爬虫框架Scrapy基本用法入门教程

    Python爬虫框架Scrapy基本用法入门教程

    这篇文章主要介绍了Python爬虫框架Scrapy基本用法,结合实例形式分析了xpath简单使用、xmlfeed模板、csvfeed模板及crawlfeed模板简单使用方法,需要的朋友可以参考下
    2018-07-07
  • Python正则表达式匹配ip地址实例

    Python正则表达式匹配ip地址实例

    这篇文章主要介绍了Python正则表达式匹配ip地址实例,通过简单的实例讲述了re模块的用法,该实例非常具有实用价值,需要的朋友可以参考下
    2014-10-10
  • Python学习笔记之线程

    Python学习笔记之线程

    这篇文章主要介绍了Python线程详解,本文详细讲解了线程方方面面的知识,如线程基础知识线程状态、线程同步(锁)、线程通信(条件变量)等内容,需要的朋友可以参考下
    2021-11-11
  • Python中嵌套类的实现

    Python中嵌套类的实现

    本文主要介绍了Python中嵌套类的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • python如何实现数组元素两两相加

    python如何实现数组元素两两相加

    这篇文章主要介绍了python如何实现数组元素两两相加,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • 使用Python建立RNN实现二进制加法的示例代码

    使用Python建立RNN实现二进制加法的示例代码

    这篇文章主要介绍了使用Python建立RNN实现二进制加法的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • Python编程实现控制cmd命令行显示颜色的方法示例

    Python编程实现控制cmd命令行显示颜色的方法示例

    这篇文章主要介绍了Python编程实现控制cmd命令行显示颜色的方法,结合实例形式分析了Python针对命令行字符串显示颜色属性相关操作技巧,需要的朋友可以参考下
    2017-08-08
  • Python利用selenium建立代理ip池访问网站的全过程

    Python利用selenium建立代理ip池访问网站的全过程

    selenium控制浏览器也是可以使用代理ip的,下面这篇文章主要给大家介绍了关于Python利用selenium建立代理ip池访问网站的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03

最新评论