python代码:在E盘存放学生课程成绩的文件“8.2score.csv”,存有6名同学各四门成绩,请读取并显示里面文本(1.txt)内容,计算每名同学的总分附加到课程成绩后面,根据每名同学的总分进行降序排序,并将排序后的结果写入到新文件“8.2是从reSort.csv”中。
时间: 2023-07-16 09:15:57 浏览: 72
以下是实现该功能的Python代码:
```python
import csv
# 读取文件内容
with open('E:\\8.2score.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
rows = [row for row in reader]
# 计算每名同学的总分
for row in rows:
total_score = sum(map(int, row[1:]))
row.append(str(total_score))
# 根据总分进行降序排序
rows.sort(key=lambda row: int(row[-1]), reverse=True)
# 将排序后的结果写入新文件
with open('E:\\8.2reSort.csv', 'w', newline='', encoding='utf-8') as f:
writer = csv.writer(f)
for row in rows:
writer.writerow(row)
```
代码解释:
首先使用 `csv` 模块读取文件内容,得到一个二维列表 `rows`,其中每个元素表示一行数据,包含同学姓名和四门成绩。
然后使用列表推导式计算每名同学的总分,将总分附加到该同学的成绩后面。
接着使用 `sort()` 方法对 `rows` 列表进行降序排序,排序依据为每个同学的总分。
最后使用 `csv` 模块将排序后的结果写入新文件。注意,写入文件时需要指定 `newline=''`,否则会在每行数据后面多出一个空行。
阅读全文