已知一段英文文本(文件内容自定),存放在D:\python下data1.txt中,请 编写程序统计data1.txt中出现频率最高的前5个单词,并将结果用文件名data_词频.txt保存在同目录下。从文件中读取数据或输出结果到文件过程中,如发生异常则给出相应提示。
时间: 2023-06-02 07:06:48 浏览: 59
好的,我明白了。以下是Python代码实现:
```
import re
# 定义函数读取文本中的单词并统计词频,最终返回前5个高频单词列表
def get_top_5_words(file_path):
try:
with open(file_path, 'r') as file:
text = file.read()
words = re.findall(r'\b[A-Za-z]+\b', text) # 提取所有单词
word_freq = {} # 统计词频
for word in words:
if word.lower() in word_freq:
word_freq[word.lower()] += 1
else:
word_freq[word.lower()] = 1
sorted_word_freq = sorted(word_freq.items(), key=lambda item: item[1], reverse=True) # 按照词频排序
top_5_words = [item[0] for item in sorted_word_freq[:5]] # 取前五个高频单词
return top_5_words
except Exception as e:
print(e)
return []
# 调用函数并保存结果到文件
top_5_words = get_top_5_words('D:/python/data1.txt')
if top_5_words:
try:
with open('D:/python/data_词频.txt', 'w') as file:
for word in top_5_words:
file.write(word + '\n')
except Exception as e:
print(e)
else:
print('读取文件出错,请检查文件路径是否正确!')
```
上面的代码会读取D:/python/data1.txt文件中的内容,并提取所有的单词,统计每个单词出现的次数,最后按照词频从高到低排序,并选取前5个单词保存到D:/python/data_词频.txt文件中。如果读取文件或写入文件过程中发生异常,会打印提示信息。