Python简答题 期末考试6名考生3门课程的成绩保存在文本文件score.csv中,内容如下: 学号,英语,数学,计算机程序设计 20210101,78,90,88 20210102,89,77,65 20210103,76,87,90 20210104,78,80,86 20210105,87,90,89 20210106,76,89,85 请编写程序 完成如下功能: 读取score.csv文件内容,计算每位同学的总分,并将总分添加至相应同学的最后列;统计每门课程的平均分,将统计结果写入到文件的末尾。(注:将统计处理后的数据另写入到score1.csv文件)
时间: 2023-09-01 08:10:39 浏览: 129
下面是Python的代码实现:
```python
import csv
# 读取score.csv文件内容
with open('score.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = [row for row in reader]
# 计算每位同学的总分,并将总分添加至相应同学的最后列
for i in range(1, len(data)):
total = sum(map(int, data[i][1:]))
data[i].append(str(total))
# 统计每门课程的平均分
english_scores = [int(row[1]) for row in data[1:]]
math_scores = [int(row[2]) for row in data[1:]]
programming_scores = [int(row[3]) for row in data[1:]]
english_avg = sum(english_scores) / len(english_scores)
math_avg = sum(math_scores) / len(math_scores)
programming_avg = sum(programming_scores) / len(programming_scores)
# 将统计结果写入到文件的末尾
with open('score1.csv', 'w', encoding='utf-8', newline='') as f:
writer = csv.writer(f)
for row in data:
writer.writerow(row)
writer.writerow(['平均分', english_avg, math_avg, programming_avg])
```
该程序首先使用csv模块读取score.csv文件中的内容,然后对每个同学的成绩进行求和,并将总分添加到相应同学的最后一列。接着,统计每门课程的平均分,最后将结果写入到score1.csv文件中。注意,当写入文件时,我们需要使用csv.writer来写入数据,并且设置newline='',以避免写入的数据中出现空行。
阅读全文