现在有一个demo.txt,里面存的是学生对应的姓名和成绩(如下), 后面的数字是多次考试的成绩,统计每个学生的总分数,并存进新的文件。 demo.txt文件内容: 张三 45 70 80 李四 80 99 100 100 王五 27 18 50 69 81 赵六 56 61
时间: 2024-12-31 21:48:13 浏览: 6
这个任务需要读取`demo.txt`文件中的数据,对每个学生的成绩进行累加,然后将结果保存到一个新的文件中。这里可以使用Python的内置模块如`csv`处理文本文件,`collections`来存储并计算总分。以下是简单的步骤:
1. 打开`demo.txt`文件,逐行读取每一条信息,分割出学生的姓名和成绩列表。
2. 使用字典或`defaultdict`来存储每个学生的姓名及其对应的成绩总和,如果遇到新学生则添加,已知学生则累加成绩。
3. 读取完所有记录后,将结果写入新的文件。
下面是一个Python脚本示例:
```python
import csv
# 初始化一个字典来存储学生姓名和总成绩
students_scores = {}
with open('demo.txt', 'r') as f_in, open('output.txt', 'w', newline='') as f_out:
reader = csv.reader(f_in, delimiter=' ')
writer = csv.writer(f_out)
for row in reader:
name = row[0]
scores = [int(score) for score in row[1:]]
# 如果学生名字第一次出现,初始化总成绩
if name not in students_scores:
students_scores[name] = sum(scores)
else:
# 已有该学生,则累加成绩
students_scores[name] += sum(scores)
# 将结果写入新文件
writer.writerow(['姓名', '总分'])
for student, total_score in students_scores.items():
writer.writerow([student, total_score])
阅读全文