Python统计文本文件中字符串出现次数的两种实现方式

沈亦白
沈亦白
发布时间:2026-10-13| 6人浏览过
原创

本文介绍在Python中统计文本文件内特定字符串出现次数的两种常用方法。首先通过两次split操作处理包含换行符和斜杠分隔符的数据,利用字典累计词频;随后展示使用re.split结合正则表达式一次性分割多种分隔符的更高效方案,并附带完整代码示例及注意事项。

Python统计文件字符串数量:split与正则表达式实战示例

题目要求:

假设有一个txt文件,其内部数据遵循特定的格式结构:

C4D\n\nC4D/maya\n\nC4D\n\nC4D/su\n\nC4D/max/AE

目标是对文件中各个独立的字段(例如C4D、maya等)进行出现次数的统计。

实现思路的第一步是读取文件内容,并将原始数据提取为可用的列表形式:


def getWords(filepath):
  file = open(filepath)
  wordOne=[]
  while(file):
    line = file.readline()
    word = line.split('/')
    wordOne.extend(word)
    if(not line):      #若读取结束了
      break 
  wordtwo=[]
  for i in wordOne:
    wordtwo.extend(i.split())
  return wordtwo

需要注意的关键点在于,文件中的数据是由换行符“\n”和斜杠“/”两种分隔符共同分割而成的,因此需要进行两次split操作才能完全拆分数据。

接下来定义一个字典用于存储统计结果,遍历提取后的数据并执行计数逻辑,具体代码如下:


def getWordNum(words):
  dictWord={}
  for i in words:
    if(i not in dictWord):
      dictWord[i]=0
    dictWord[i]+=1
  return dictWord

主函数的调用方式如下:


filepath='data/new.txt'
words = getWords(filepath)
dictword = getWordNum(words)
print(dictword)

最终运行结果如下:


{'C4D': 9, 'max': 1, 'su': 1, 'maya': 1, 'AE': 3}

代码逻辑说明:

1,


print(type(word)) 
print(type(splitData[0])) 

输出结果为:


<class 'list'>
<class 'str'>

这里需要理解的是,当执行splitData.extend()之后,原本属于list类型的数据被转换并存储为str类型的元素。只有针对str类型的数据,才能继续使用split函数进行进一步分割。

2,


import os 
print(os.getcwd()) 

此方法可以输出当前代码执行所在的目录位置,对于调试文件读取路径非常有用。

在读取文件并对内容进行切分时,如果涉及的分隔符种类较多,使用re.split()正则表达式分割方法会更加便捷,示例如下:


filepath='data/new.txt'
file = open(filepath)    #读取文件
wordOne=[]
symbol = '\n/'       #定义分隔符
symbol = "["+symbol+"]"   #拼接正则表达式
while(file):
  line = file.readline()
  word = re.split(symbol,line)
  wordOne.extend(word)
  if(not line):
    break
#通过上式得到的list中会含有很多的空字符串,所以要去空
wordOne = [x for x in wordOne if x]

以上关于Python统计文件中字符串数目的示例分享完毕,希望能为读者提供有效的参考,也欢迎大家继续支持本站获取更多技术内容。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。