打开文件 "stu_info2.txt",读取学生信息并存储在一个数组中。 根据每个学生的平均分进行排序。 创建一个新文件 "stu_sort.txt",将排序后的学生信息写入该文件中。注意事项
时间: 2023-11-27 19:53:05 浏览: 86
学生通讯录系统 数组 文件读写 排序
好的,以下是Python代码实现:
```python
# 打开文件并读取学生信息
with open("stu_info2.txt", "r") as f:
lines = f.readlines()
# 存储学生信息的数组
students = []
# 解析每一行学生信息
for line in lines:
info = line.strip().split(",")
name = info[0]
scores = list(map(int, info[1:]))
avg_score = sum(scores) / len(scores)
students.append({"name": name, "scores": scores, "avg_score": avg_score})
# 根据每个学生的平均分进行排序
sorted_students = sorted(students, key=lambda x: x["avg_score"])
# 创建新文件并写入排序后的学生信息
with open("stu_sort.txt", "w") as f:
for student in sorted_students:
name = student["name"]
scores = ",".join(map(str, student["scores"]))
avg_score = str(student["avg_score"])
f.write(f"{name},{scores},{avg_score}\n")
```
需要注意的事项:
1. 文件路径需要正确,否则会出现 FileNotFoundError。
2. 学生信息文件中每行格式必须一致,例如:姓名,成绩1,成绩2,成绩3。
3. 写入新文件时需要注意换行符的添加,否则会出现多行信息写在同一行的情况。
阅读全文