用python编写程序,打开一篇英文文章(存在当前目录下的文件in.txt中),为该文章生成词汇表(存到当前目录下的另一个文件words.txt中)。文章中单词指的是只由小写或大写字母组成的字符串,但词汇表中的单词都是以小写字母的形式出现,若文章中出现多个大小写无关的相同单词,只在词汇表中生成一个单词。假设生成的词汇表中单词个数不会超过100个,且每个单词的长度不会超过20。词汇表中的单词以字典顺序由小到大存放。 【输入形式】 输入的英文文章存储在当前目录下的文件in.txt中。 【输出形式】 输出的词汇表存储到当前目录下的文件words.txt中,每个单词独占一行,以字典顺序由小到大存放。
时间: 2024-01-22 15:18:23 浏览: 23
代码如下:
```python
import string
# 读取文件内容
with open('in.txt', 'r') as f:
content = f.read()
# 将标点符号去掉并转换成小写
content = content.translate(str.maketrans('', '', string.punctuation)).lower()
# 将文章分割成单词
words = content.split()
# 去重并排序
words = sorted(list(set(words)))
# 将单词写入文件
with open('words.txt', 'w') as f:
for word in words:
f.write(word + '\n')
```
其中,`string.punctuation` 是 Python 内置的字符串常量,包含所有的标点符号。 `str.maketrans()` 函数是将标点符号替换为空格的工具函数。 `set()` 函数可以去除列表中的重复元素。
相关问题
编写程序,打开一篇英文文章(存在当前目录下的文件in.txt中),为该文章生成词汇表(存到当前目录下的另一个文件words.txt中)python
以下是一个简单的 Python 程序,可用于读取一个英文文本文件,并生成包含所有单词的词汇表:
```python
import string
with open("in.txt", "r") as file:
text = file.read()
# Remove punctuation and convert to lowercase
text = text.translate(str.maketrans("", "", string.punctuation)).lower()
# Split into words
words = text.split()
# Remove duplicates and sort alphabetically
words = sorted(set(words))
# Save words to file
with open("words.txt", "w") as file:
for word in words:
file.write(word + "\n")
```
这个程序首先打开名为 "in.txt" 的文件,并读取其中的文本。然后,它将所有标点符号删除,并将所有字母转换为小写。接下来,它将文本拆分为单词,并从中删除重复项,并按字母顺序排序。最后,它将单词写入名为 "words.txt" 的文件中。
编写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()` 方法将单词逐行写入文件。