有一个学生信息文件student.txt,文件格式如下 103 吴勇 J179 1998-03-04 158 刘三 J176 1995-11-05 240 何坤 J176 1996-03-26 238 赵军 J179 1997-03-14 …… 分别代表学生的学号、姓名、班级、和生日 要求将学生信息按班级进行划分,将同一个班级的学生存放进不同的班级文件中(以班级名称做为文件名) 比如:在J179.txt文件中,存放 103 吴勇 J179 1998-03-04 238 赵军 J179 1997-03-14 …… 在J176.txt文件中,存放 158 刘三 J176 1995-11-05 240 何坤 J176 1996-03-26 …… 注意:有几个班级现在是未知的。 要求: 良好的编码规范,良好的命名和合理的注释
时间: 2024-01-14 12:03:23 浏览: 67
以下是 Python 实现代码:
```python
import os
# 打开原始文件,读取学生信息
with open("student.txt", "r") as f:
lines = f.readlines()
# 按班级将学生信息分组
students = {}
for line in lines:
info = line.split()
if len(info) < 4:
continue
class_name = info[2]
if class_name not in students:
students[class_name] = []
students[class_name].append(line)
# 将每个班级的学生信息写入新文件
for class_name, student_info in students.items():
file_name = class_name + ".txt"
with open(file_name, "w") as f:
f.writelines(student_info)
```
首先,我们读取原始文件 `student.txt` 中的所有行,然后按班级将学生信息分组,存储到字典 `students` 中。字典的键为班级名称,值为该班级的学生信息列表。
接着,我们遍历 `students` 字典中的每一项,将该班级的学生信息写入以班级名称命名的新文件中。如果该班级的文件不存在,会自动创建一个新文件。
最后,我们得到了每个班级对应的学生信息文件。如果有几个班级的信息在原始文件中没有出现,那么它们不会出现在生成的文件中。
阅读全文