某班的一次考试所有学生的考试成绩都记录在一个文件in.data之中,文件内容格式如下: 张三的成绩是72分,李四成绩是69分,刘小林的成绩是95分。 现在需要对该文件进行处理,将其内容拷贝到另一个目标文件out.data之中,并统计所有学生成绩平均分(保留2为小数)。 请编码实现该成绩统计系统。
时间: 2024-02-09 16:08:36 浏览: 87
好的,你可以参考以下的 Python 代码实现该成绩统计系统:
```python
# 打开输入文件
with open('in.data', 'r') as infile:
# 读取输入文件内容
content = infile.read()
# 关闭输入文件
# 解析学生成绩并计算平均分
scores = []
for item in content.split(','):
score = int(item.split(' ')[-1].rstrip('分'))
scores.append(score)
avg_score = round(sum(scores) / len(scores), 2)
# 打开输出文件并写入内容
with open('out.data', 'w') as outfile:
outfile.write(content)
outfile.write('\n平均分:{:.2f}分'.format(avg_score))
# 关闭输出文件
```
代码说明:
1. 首先使用 `with open('in.data', 'r')` 打开输入文件,`r` 表示以只读模式打开文件。
2. 使用 `infile.read()` 读取文件内容。
3. 关闭输入文件,这里使用了 `with` 语句,可以自动关闭文件,无需手动调用 `infile.close()`。
4. 遍历每个学生成绩,使用 `split()` 方法和切片操作解析学生姓名和成绩,将成绩添加到 `scores` 列表中。
5. 计算所有学生成绩的平均分,使用 `sum()` 函数和列表的长度计算总分和人数,使用 `round()` 函数保留两位小数。
6. 使用 `with open('out.data', 'w')` 打开输出文件,`w` 表示以写入模式打开文件,如果文件不存在则自动创建。
7. 使用 `outfile.write()` 方法将输入文件内容和平均分写入输出文件。
8. 关闭输出文件,这里同样使用了 `with` 语句。
阅读全文