第三次作业
- 学号:2017*****1101
- 姓名:孟昊
- 码云地址:https://gitee.com/mh-22/word_frequency/tree/SE1101
一、程序分析
1、读文件到缓冲区
# filename: word_freq.py
# 阅读注释,在所有pass处删除pass,添加代码
# 阅读注释,在所有pass处删除pass,添加代码
from string import punctuation
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
2、添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq
def process_buffer(bvffer):
if bvffer:
word_freq = {}
# 下面添加处理缓冲区 bvffer代码,统计每个单词的频率,存放在字典word_freq
bvffer = bvffer.lower()
for ch in '"‘!;,.?"':
bvffer = bvffer.lower().replace(ch, " ")
words =bvffer.strip().split()
for word in words:
word_freq[word] = word_freq.get(word, 0)+1
return word_freq
3、输出 Top 10 的单词
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[0], item[1])
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[0], item[1])
4、'main'函数测试
if __name__ == "__main__":
dst = 'A_Tale_of_Two_Cities.txt'
dst = 'Gone_with_the_wind.txt'
bvffer = process_file(dst)
word_freq = process_buffer(bvffer)
output_result(word_freq)
二、性能分析结果及改进。
执行次数最多的代码和执行时间最长的代码
三、程序运行命令、结果截图。
四、给出你对此次任务的总结与反思。
还有很多不会,争取下次可以做会。