python代码:在E盘存放学生课程成绩的文件“8.2score.csv”,存有6名同学各四门成绩。请读取并显示文件内容,计算每名同学的总分附加到课程成绩后面,根据每名同学的总分进行降序排序,并将排序后的结果写入到新文件“8.2是从reSort.csv”中。
时间: 2023-07-16 11:15:01 浏览: 93
以下是 Python 代码实现:
```python
import csv
# 读取文件
with open('E:\\8.2score.csv', 'r') as file:
reader = csv.reader(file)
# 跳过表头
next(reader)
# 计算每名同学的总分
scores = []
for row in reader:
total_score = sum(map(int, row[1:]))
row.append(total_score)
scores.append(row)
# 根据每名同学的总分进行降序排序
sorted_scores = sorted(scores, key=lambda x: x[-1], reverse=True)
# 写入新文件
with open('E:\\8.2reSort.csv', 'w', newline='') as file:
writer = csv.writer(file)
# 写入表头
writer.writerow(['姓名', '科目1', '科目2', '科目3', '科目4', '总分'])
# 写入数据
for row in sorted_scores:
writer.writerow(row)
```
说明:
1. 使用 `csv` 模块读取和写入 CSV 文件。
2. `with` 语句可以自动管理文件的打开和关闭。
3. `next(reader)` 可以跳过 CSV 文件的表头。
4. 使用 `map` 函数将每个元素转换为整数,然后使用 `sum` 函数计算总分。
5. `key=lambda x: x[-1]` 表示按照每行的最后一个元素(即总分)进行排序。
6. `reverse=True` 表示降序排序。
阅读全文