分析成绩单。现有如下格式的成绩单(文本格式)score.txt: 姓名:张三,数学72分,物理67分,英语70分。 姓名:李四,数学92分,物理98分,英语88分。 姓名:周五,数学68分,物理80分,英语77分。 要求按行读入成绩单,并在该行的后面结尾加上该同学的总成绩,然后再将该行写入到一个名字为scoreAnalysis.txt的文件中。
时间: 2024-03-25 08:37:40 浏览: 22
好的,我可以帮你完成这个任务。以下是实现代码:
```python
# 打开成绩单文件
with open('score.txt', 'r', encoding='utf-8') as f:
# 遍历每一行
for line in f.readlines():
# 去掉行末的换行符
line = line.strip()
# 如果是姓名行
if line.startswith('姓名'):
# 解析出姓名
name = line.split(':')[1]
# 初始化总成绩
total_score = 0
else:
# 解析出科目和分数
subject, score = line.split(',')
score = int(score[:-1]) # 去掉分数末尾的“分”字
# 累加总成绩
total_score += score
# 在行末添加总成绩
line += f',总成绩{total_score}分。'
# 写入到scoreAnalysis.txt文件中
with open('scoreAnalysis.txt', 'a', encoding='utf-8') as fw:
fw.write(name + ',' + line + '\n')
```
这段代码会读入score.txt文件,逐行解析出姓名、科目和分数,并计算出每个同学的总成绩,然后将每行加上总成绩后写入到scoreAnalysis.txt文件中。注意,在scoreAnalysis.txt文件中,每行开头需要加上姓名。
阅读全文