Python稳基修炼的经典案例12(计算机二级、初学者必会的字符文件处理)

2023-05-16

文章目录

        • 1、统计文件中出现的所有中文字符及标点符号的数量
        • 2、统计文本中出现引号的字符占文本总字符的比例
        • 3、统计出现次数最多的8个词语

1、统计文件中出现的所有中文字符及标点符号的数量

  • 题:统计文件中出现的所有中文字符及标点符号的数量,字符与数量用冒号隔开
    如,“命:1024”
fi = open("a.txt", 'r', encoding='gbk')
fo = open("b.txt", 'w', encoding='gbk')
txt = fi.read()
d = {}
for c in txt:
    d[c] = d.get(c, 0)+1  # 利用get创建键值对,同时变化值的大小
    #del d['']  # 删除空格
    #del d['\n']  # 删除换行
ls = []
for key in d:  # 遍历所有键,追加到列表中
    ls.append("{}:{}".format(key, d[key]))
fo.write(','.join(ls))  # 用逗号分隔每组 键及数量
fi.close()
fo.close()

在这里插入图片描述


2、统计文本中出现引号的字符占文本总字符的比例

  • 题:统计文本中出现引号的字符占文本总字符的比例,如,“命:20%”,提示:比例=字符数/文本长度
fi = open("a.txt", 'r', encoding='gbk')
txt = fi.read()
con = 0
flag = False
for c in txt:
    if c == '“':  # 前引号,变True开启加1操作
        flag = True
    if c == '”':  # 遇到后引号,就关闭加1操作
        flag = False
    if flag:
        con += 1
print("占总字符比例:{:.0%}。".format(con/len(txt)))   # 比例不带小数
fi.close()

02
这里面的a.txt便是上文中的那个a.txt


3、统计出现次数最多的8个词语

  • 题:统计文本文件中出现的中文词及其对应的次数,并输出出现次数最多的8个词语
import jieba
fi = open("a.txt", 'r', encoding='gbk')
txt = fi.read()   # 获得文本对象
fi.close()
ls = jieba.lcut(txt)  # 获取分词
dic = {}
for w in ls:  # 遍历所有分词,同时添加键与值,并统计次数
    dic[w] = dic.get(w,0) + 1
rst = []  # 存放次数最多的前8个次的列表
for i in range(8):  # 8次遍历整个字典,每次都找出次数最多的那个词,放入mxj中
    mx = 0  # 次数最多的值
    mxj = 0  # 次数最多的键
    for j in dic:
        if dic[j] > mx:
            mx = dic[j]  # 获得此轮值
            mxj = j  # 获得此轮键
    rst.append(mxj)  # 追加键名到列表中
    del dic[mxj]
print(",".join(rst))

03

  • 若要打印每个词对应的次数,则可以加入:
for key in dic:
    rst.append("{}:{}".format(key, dic[key]))
print(",".join(rst))
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python稳基修炼的经典案例12(计算机二级、初学者必会的字符文件处理) 的相关文章

随机推荐