python 统计文件中的字符串数目示例
作者:huaibei_北 发布时间:2022-05-14 11:29:34
标签:python,统计,字符串,数目
题目:
一个txt文件中已知数据格式为:
C4D
C4D/maya
C4D
C4D/su
C4D/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两次。
然后定义一个dict,遍历数据,代码如下所示:
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]
来源:https://blog.csdn.net/w417950004/article/details/78424366
0
投稿
猜你喜欢
- 前言这周和大家分享如何用python识别图像里的条码。用到的库可以是zbar。希望西瓜6辛苦码的代码不要被盗了。(zxing的话,我一直没有
- 示例函数为了开发类型检查器,我们需要一个简单的函数对其进行实验。欧几里得算法就是一个完美的例子: def gcd(a, b):
- Varchar 对每个英文(ASCII)字符都占用2个字节,对一个汉字也只占用两个字节char 对英文(ASCII)字符占用1个字节,对一个
- 1、对继承的理解继承(Inheritance) :代码复用的高级抽象继承是面向对象设计的精髓之一实现了以类为单位的高级抽象级别代码复用继承是
- 1.int,float相互转换例1:int转float使用float(int)float转int使用int(float)# coding:u
- 前言最近项目中遇到一个用于监控日志文件的Python包pyinotify,结合自己的项目经验和网上的一些资料总结一下,总的原理是利用pyin
- 1.pickle 写: 以写方式打开一个文件描述符,调用pickle.dump把对象写进去 &
- 本文实例为大家分享了vue+moment实现倒计时的具体代码,供大家参考,具体内容如下示例代码<!-- 使用计算属性,传入截止日期 -
- 前言回调函数是我们在python编程中经常会遇到的一个问题,而想在将来某一时刻进行函数回调,可以使用call_later()函数来实现,第一
- 组合模式Composite Pattern是什么组合模式是一种结构型模式,它允许你将对象组合成树形结构来表示“部分-整体
- 解决golang编译提示dial tcp 172.217.160.113:443: connectex: A connection atte
- 前言Javascript闭包在学习过程中一般较难理解,本文从什么是闭包,常见闭包示例,闭包作用,闭包应用及闭包问题等方面来介绍闭包,希望能给
- 视频观看视频Python 类和对象面向对象编程是编写表示现实世界中的事物和情景的类,并基于这些类来创建对象。编写类时,你定义一大类对象都有的
- 拼接table请将以下代码直接运行:换下bootstrap.css jquery-1.12.3.min.js bootstrap-pagin
- FP代表频繁模式(Frequent Pattern),算法主要分为两个步骤:FP-tree构建、挖掘频繁项集。FP树表示法FP树通过逐个读入
- 1005:创建表失败1006:创建数据库失败1007:数据库已存在,创建数据库失败1008:数据库不存在,删除数据库失败1009:不能删除数
- Python 中文编码Python 文件中如果未指定编码,在执行过程会出现报错:Python中默认的编码格式是 ASCII 格式,在没修改编
- 提高MySQL 查询效率的三个技巧小结MySQL由于它本身的小巧和操作的高效, 在数据库应用中越来越多的被采用.我在开发
- 这篇文章主要介绍了python已协程方式处理任务实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的
- validator自定义验证及易错点validator自定义验证element中Form 组件提供了表单验证的功能,只需要通过 rules