📖 知识点回顾
with open(..., "r", encoding="utf-8")只读模式readlines () 获取全部行列表
split(",")按逗号分割字符串类型转换:文件读出全部是字符串,年龄、分数需要转回 int
业务格式(沿用 student.txt)
小明,16,88
小红,15,92
小刚,16,75
执行思路:
打开 txt 文件,读取所有行
循环每一行,用
split(',')切割字符串把切割后的字段组装成字典,追加到学员列表
注意:每行末尾自带换行,使用
strip()清理空白
⚔️ Kata 实战任务
任务需求:
读取上节课生成的
student.txt使用 with、readlines 读取全部行
循环解析每一行,生成字典,存入
student_list打印最终的学员列表
字段顺序:name 姓名,age 年龄,score 分数;age 和 score 转为整数
参考代码
student_list = []
with open("student.txt", "r", encoding="utf-8") as f:
lines = f.readlines()
for line in lines:
# 去除换行、空白
line = line.strip()
# 空行跳过,防止文件末尾空行报错
if not line:
continue
# 逗号切割
name, age_str, score_str = line.split(",")
# 类型转换
stu_dict = {
"name": name,
"age": int(age_str),
"score": int(score_str)
}
student_list.append(stu_dict)
print("✅ 从文件加载完成,学员列表:")
print(student_list)
运行输出:
✅ 从文件加载完成,学员列表:
[{'name': '小明', 'age': 16, 'score': 88}, {'name': '小红', 'age': 15, 'score': 92}, {'name': '小刚', 'age': 16, 'score': 75}]
🧠 思考题
代码里为什么要判断
if not line: continue,跳过空行?如果 txt 文件中某一行少写一个字段,split 之后程序会报错,怎么用异常处理保护?