分别从两个文件中,按行读取歌词,计算每 首歌词中单词的出现频次。对单词的频次进行升序排序,将数据分别写入到 sort1.txt 和 sort2.txt 中。排序后的文件内容以“单词:频次 ”的方式保 存,如下所示:hand :10 dream :9
时间: 2024-09-25 09:16:56 浏览: 25
这是一个涉及文本处理、文件操作以及简单的数据分析的任务。以下是使用Python的一个简单示例来完成这个任务:
```python
import re
from collections import Counter
with open('file1.txt', 'r') as file1, open('file2.txt', 'r') as file2:
# 合并两文件的内容
lyrics = file1.read() + file2.read()
# 使用正则表达式提取单词,并转换为小写
words = re.findall(r'\b\w+\b', lyrics.lower())
# 计算每个单词的出现次数
word_counts = Counter(words)
# 对单词计数进行升序排序
sorted_word_counts = dict(sorted(word_counts.items(), key=lambda item: item[1]))
# 将结果写入sort1.txt和sort2.txt
with open('sort1.txt', 'w') as out1, open('sort2.txt', 'w') as out2:
for word, count in sorted_word_counts.items():
out1.write(f"{word}: {count}\n")
if len(out1.readlines()) == 50: # 如果sort1.txt满了,开始写入sort2.txt
out2.write(f"{word}: {count}\n")
# 结果会按照频次从高到低写入sort1.txt和sort2.txt,每文件最多包含50条记录
```
请注意,上述代码假设歌曲歌词文件(file1.txt和file2.txt)中的每一行都是独立的一首歌,且歌词中单词之间没有特殊分隔符。如果实际文件格式不同,可能需要调整正则表达式。
阅读全文