编写程序,打开一篇英文文章(存在当前目录下的文件in.txt中),为该文章生成词汇表(存到当前目录下的另一个文件words.txt中)。文章中单词指的是只由小写或大写字母组成的字符串,但词汇表中的单词都是以小写字母的形式出现,若文章中出现多个大小写无关的相同单词,只在词汇表中生成一个单词。假设生成的词汇表中单词个数不会超过100个,且每个单词的长度不会超过20。词汇表中的单词以字典顺序由小到大存放。
时间: 2024-01-22 17:18:50 浏览: 80
以下是Python3的代码实现:
```python
import re
# 读取文章内容
with open('in.txt', 'r') as f:
content = f.read()
# 使用正则表达式匹配单词,转换为小写并加入集合中
word_set = set()
for word in re.findall(r'\b\w+\b', content):
word_set.add(word.lower())
# 转换为列表并按字典序排序
word_list = sorted(list(word_set))
# 写入词汇表文件
with open('words.txt', 'w') as f:
for word in word_list:
f.write(word + '\n')
```
代码解析:
1. 使用`with`语句打开文件,读取文章内容。
2. 使用正则表达式匹配单词,并使用`set`集合去重和大小写转换。
3. 将集合转换为列表,并使用`sorted`函数按字典序排序。
4. 使用`with`语句打开词汇表文件,将词汇表写入文件中。
需要注意的是,本程序对于单词的定义比较简单,只考虑了由大小写字母组成的情况,如果要考虑更加复杂的情况,需要使用更加复杂的正则表达式。
相关问题
编写程序,打开一篇英文文章(存在当前目录下的文件in.txt中),为该文章生成词汇表(存到当前目录下的另一个文件words.txt中)。
以下是Python的代码实现:
```python
# 打开文件
with open("in.txt", "r") as f:
text = f.read()
# 去除标点符号并转为小写
text = text.lower()
for c in '!"#$%&()*+,-./:;<=>?@[\\]^_`{|}~':
text = text.replace(c, ' ')
# 分割单词
words = text.split()
# 去重并排序
words = sorted(set(words))
# 保存到文件
with open("words.txt", "w") as f:
f.write('\n'.join(words))
```
首先,我们打开in.txt文件并读取其中的内容。由于文章中可能会存在大写字母、标点符号等干扰词汇表的元素,因此我们将所有单词转为小写,并去除标点符号。这里使用了字符串的replace()方法和for循环。
接着,我们使用split()方法将文章分割为单词。然后,我们使用set()方法去除重复的单词,并使用sorted()方法将单词按字典序排序。
最后,我们将生成的词汇表保存到words.txt文件中。这里使用了文件的读写操作,包括with关键字的上下文管理器和write()方法。
编写python程序,打开一篇英文文章(存在当前目录下的文件in.txt中),为该文章生成词汇表(存到当前目录下的另一个文件words.txt中)。文章中单词指的是只由小写或大写字母组成的字符串,但词汇表中的单词都是以小写字母的形式出现,若文章中出现多个大小写无关的相同单词,只在词汇表中生成一个单词。假设生成的词汇表中单词个数不会超过100个,且每个单词的长度不会超过20。词汇表中的单词以字典顺序由小到大存放。
以下是实现该程序的Python代码:
```python
# 打开文件
with open("in.txt", "r") as f:
content = f.read()
# 将文章中的单词转换为小写,并去除标点符号
words = content.lower().replace(",", "").replace(".", "").split()
# 生成词汇表
word_set = set(words) # 去重
word_list = sorted(list(word_set)) # 排序
# 将词汇表写入文件
with open("words.txt", "w") as f:
for word in word_list:
f.write(word + "\n")
```
首先,我们使用 `with open()` 打开文件,并将文章内容读入到 `content` 变量中。
然后,我们将文章中的单词转换为小写字母,并使用 `replace()` 方法去除标点符号。这里使用 `split()` 方法将文章分割成单词列表。
接下来,我们使用 `set()` 去除重复的单词,并将其转换为列表。使用 `sorted()` 方法对列表进行排序,得到词汇表。
最后,我们将词汇表写入到 `words.txt` 文件中,使用 `with open()` 打开文件并使用 `write()` 方法将单词逐行写入文件。
阅读全文