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

发表时间:2020-09-14

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))

文章来源互联网,如有侵权,请联系管理员删除。邮箱:417803890@qq.com / QQ:417803890

微配音

Python Free

邮箱:417803890@qq.com
QQ:417803890

皖ICP备19001818号
© 2019 copyright www.pythonf.cn - All rights reserved

微信扫一扫关注公众号:

联系方式

Python Free