从1.csv中读取学生成绩数据,求每个学生的平均成绩,并将学生的姓名,各科成绩,平均成绩重新写入1.csv。 若1.csv不存在,则先创建该文件:使用while True在键盘中循环输入学生的姓名,以及数学、语文、英语和计算机四门课程成绩(用逗号隔开),直到遇到字母Q,将输入的每行数据写入到1.csv文件中。
时间: 2023-07-16 11:16:08 浏览: 129
测试所用的学生成绩.csv
以下是Python代码实现:
```python
import csv
import os
filename = '1.csv'
# 如果文件不存在,则创建文件并写入表头
if not os.path.exists(filename):
with open(filename, 'w', newline='') as f:
writer = csv.writer(f)
writer.writerow(['姓名', '数学', '语文', '英语', '计算机', '平均成绩'])
# 读取学生成绩数据,并计算平均成绩
with open(filename, 'r', newline='') as f:
reader = csv.reader(f)
rows = list(reader)
for i in range(1, len(rows)):
row = rows[i]
name = row[0]
scores = list(map(int, row[1:5]))
avg_score = sum(scores) / len(scores)
row.append(avg_score)
# 将学生的姓名、各科成绩和平均成绩写入1.csv文件
while True:
data = input('请输入学生姓名和各科成绩(用逗号隔开),输入Q退出:')
if data.lower() == 'q':
break
data = data.split(',')
name = data[0]
scores = list(map(int, data[1:]))
avg_score = sum(scores) / len(scores)
scores.append(avg_score)
with open(filename, 'a', newline='') as f:
writer = csv.writer(f)
writer.writerow([name] + scores)
```
以上代码中,首先判断文件是否存在,如果不存在则创建文件并写入表头。然后读取文件中的学生成绩数据,并计算每个学生的平均成绩。接着使用while True循环,持续从键盘中读取学生姓名和各科成绩,并将其写入1.csv文件中。最后使用csv.writer将数据写入文件中。
阅读全文