用python编写程序,从data.txt中提取学校名称列表,将结果写入文件univ.txt,每行一个学校名称,按照学校在data.txt出现的先后顺序输出。
时间: 2024-02-05 22:11:21 浏览: 78
可以使用正则表达式来匹配学校名称,然后按照出现顺序输出到文件中。以下是示例代码:
```python
import re
# 读取 data.txt 文件
with open('data.txt', 'r') as f:
data = f.read()
# 匹配学校名称
pattern = r'大学|学院|师范学院|工学院|理工学院|职业学校|高等学府|艺术学院|科技大学|医学院|农业大学|财经学院|体育学院|交通大学|政法学院|师大'
matches = re.findall(pattern, data)
# 去重并按照先后顺序输出到文件
unique_matches = list(set(matches))
with open('univ.txt', 'w') as f:
for match in matches:
if match in unique_matches:
f.write(match + '\n')
unique_matches.remove(match)
```
上述代码中,首先使用 `with open()` 语句读取 `data.txt` 文件,然后使用正则表达式 `r'大学|学院|师范学院|工学院|理工学院|职业学校|高等学府|艺术学院|科技大学|医学院|农业大学|财经学院|体育学院|交通大学|政法学院|师大'` 匹配学校名称,并将所有匹配结果保存在 `matches` 列表中。
接下来,使用 `set()` 函数将 `matches` 列表转换为集合,并使用 `list()` 函数将集合转换为列表 `unique_matches`,以去除重复的学校名称。然后,依次遍历 `matches` 列表中的每个元素,如果该元素在 `unique_matches` 中存在,则将其写入到 `univ.txt` 文件中,并从 `unique_matches` 列表中删除该元素,以保证每个学校只输出一次。最终,输出到 `univ.txt` 文件中的学校名称按照它们在 `data.txt` 文件中出现的先后顺序排列。
阅读全文