python 当前路径下有一个文本文件article.txt,是一篇英文文章。编写一个程序,对文件中的单词根据长度进行分类和统计,标点符号忽略,相同的单词仅计算一次。分类和统计的结果按照一定格式存放,结果存放到new_article_classify.txt中
时间: 2024-02-06 12:11:00 浏览: 75
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
5星 · 资源好评率100%
好的,我会为您解答这个问题。
您可以使用Python中的正则表达式模块re来进行文本处理。以下是代码实现:
```python
import re
# 打开文件
with open('article.txt', 'r') as f:
text = f.read()
# 使用正则表达式提取所有单词,忽略标点符号
words = re.findall(r'\b[A-Za-z]+\b', text)
# 对单词按照长度进行分类和统计
word_dict = {}
for word in words:
# 转换为小写字母
word = word.lower()
# 如果单词已经在字典中,则增加计数器
if word in word_dict:
word_dict[word] += 1
else:
# 否则添加到字典中
word_dict[word] = 1
# 根据单词长度,将单词分到不同的列表中
classify_dict = {}
for word, count in word_dict.items():
length = len(word)
if length in classify_dict:
classify_dict[length].append((word, count))
else:
classify_dict[length] = [(word, count)]
# 将分类和统计结果按照一定格式存放到new_article_classify.txt中
with open('new_article_classify.txt', 'w') as f:
for length, word_list in classify_dict.items():
f.write(f"{length} letters:\n")
for word, count in word_list:
f.write(f"{word}: {count}\n")
```
这个程序会将分类和统计结果按照以下格式存放到new_article_classify.txt中:
```
4 letters:
this: 1
from: 2
file: 1
...
5 letters:
world: 3
hello: 1
...
...
```
阅读全文