作业三_查重+分析效能
- 马广铭
- 2016035107159
- 码云仓库:https://gitee.com/magegeya/word_frequency/tree/master
代码分析:
SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。1.导入模块
from string import punctuation
2.读取文件
def process_file(dst): try: f = open(dst,'r') except IOError as s: print (s) return None try: bvffer = f.read() except: print ("Read File Error!") return None f.close() return bvffer
3.处理缓冲区,将字母全部转换为小写,以空格分隔单词,将重复词汇存入字典
def process_buffer(bvffer): if bvffer: word_freq = {} # 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq bvffer = bvffer.lower() #将文档中的全部字母改为小写,防止大小写混淆 words = bvffer.strip().split() #以空格分割词汇 for word in words: word_freq[word] = word_freq.get(word,0)+1 #将重复词汇存到字典里 return word_freq
4.输出重复率前十的词汇
def output_result(word_freq): if word_freq: sorted_word_freq = sorted(word_freq.items(), key=lambda v: v[1], reverse=True) for item in sorted_word_freq[:10]: # 输出 Top 10 的单词 print(item)
5.运行
if __name__ == "__main__": import argparse parser = argparse.ArgumentParser() parser.add_argument('dst') args = parser.parse_args() dst = args.dst bvffer = process_file(dst) word_freq = process_buffer(bvffer) output_result(word_freq)
运行结果:
大文件:
小文件:
性能分析:
共执行3219次,耗时0.004秒
总结:
- 通过这次作业学习到了词汇查重这项能力
- 明白了如何分析效能以及分析效能的目的
- 本次作业内容并不困难,但是操作方式不当,所以百度了很久,百度的内容也并不详细,希望老师上课时可以讲一下操作方法

更多精彩