已知有一个正确单词索引表(保存在当前目录下的文件index.txt中,且全为小写字母,按照字典序由小到大排列,每个单词独占一行),编写程序利用该单词表对某一英文文章(保存在当前目录下的另一个文件in.txt中)进行单词正确性检查,若该英文文章中出现的单词(只有连续字母组成)没有出现在单词索引文件中(检查时大小写无关),则将该出错的单词(其中的字母全部转换为小写)输出到当前目录下的另一文件error.txt中,每个单词独占一行,并且以字典序由小到大的顺序输出。 假设: 1、in.txt中的文章有可能没有经过排版,格式有可能杂乱无章,也有可能没有写完整。 2、index.txt中的单词个数不超过1000个,每个单词的长度不超过50个字母。 3、若出错的单词多次出现,则多次输出。
时间: 2024-01-22 16:19:10 浏览: 143
数据集目录,其中 包含 26 个小写字母字符的大图像.rar
下面给出 Python 代码实现:
```python
# 读取单词索引表
index_file = open("index.txt", "r")
index_words = set([line.strip() for line in index_file])
index_file.close()
# 读取英文文章
text_file = open("in.txt", "r")
text = text_file.read().lower()
text_file.close()
# 提取出现的单词,去重并按字典序排序
import re
words = sorted(set(re.findall(r'\b\w+\b', text))))
# 找出不在单词索引表中的单词,写入错误文件
error_file = open("error.txt", "w")
for word in words:
if word not in index_words:
error_file.write(word + "\n")
error_file.close()
```
代码中使用了 Python 的正则表达式模块 re 来提取出现的单词。具体来说,`\b` 表示单词边界,`\w` 表示任意字母数字字符,`+` 表示匹配一个或多个。提取出来的单词通过 set 去重,并使用 sorted 函数按字典序排序。最后遍历单词列表,如果单词不在索引表中,则写入错误文件 error.txt 中。
阅读全文