当前目录下文件data.txt中存放若干学生的成绩,每个学生的成绩占一行,学生姓名与成绩用空格分隔,编写程序读取所有整数和姓名,将其按成绩降序排序后再写入文本文件result.txt中。
时间: 2024-01-01 15:07:03 浏览: 103
可以使用以下代码实现:
```python
# 读取文件中的数据
with open('data.txt', 'r') as f:
lines = f.readlines()
# 提取学生的姓名和成绩并排序
scores = []
for line in lines:
parts = line.strip().split(' ')
name = parts[0]
score = int(parts[-1])
scores.append((name, score))
scores.sort(key=lambda x: x[1], reverse=True)
# 将排序后的姓名和成绩写入文件
with open('result.txt', 'w') as f:
for name, score in scores:
f.write(name + ' ' + str(score) + '\n')
```
与上一个问题类似,读取文件时同样使用 `readlines()` 函数读取所有行,并使用 `strip()` 和 `split()` 函数提取每个学生的姓名和成绩。不同的是,这里使用一个元组 `(name, score)` 存储每个学生的姓名和成绩,并将所有元组存储在一个列表 `scores` 中。排序时,使用 `key` 参数指定按成绩降序排序,排序后的列表 `scores` 中的元素即为按成绩排序的学生姓名和成绩。最后,使用 `with open(...) as f:` 语句将排序后的姓名和成绩写入新的文件中。
阅读全文