行者孙Python

藏经篇-Day62 读取 txt 文件,加载学员档案到列表字典

📖 知识点回顾

  1. with open(..., "r", encoding="utf-8") 只读模式

  2. readlines () 获取全部行列表

  3. split(",") 按逗号分割字符串

  4. 类型转换:文件读出全部是字符串,年龄、分数需要转回 int

业务格式(沿用 student.txt)

 

小明,16,88
小红,15,92
小刚,16,75

 

执行思路:

  1. 打开 txt 文件,读取所有行

  2. 循环每一行,用split(',')切割字符串

  3. 把切割后的字段组装成字典,追加到学员列表

  4. 注意:每行末尾自带换行,使用strip()清理空白

⚔️ Kata 实战任务

任务需求:

  1. 读取上节课生成的 student.txt

  2. 使用 with、readlines 读取全部行

  3. 循环解析每一行,生成字典,存入student_list

  4. 打印最终的学员列表

字段顺序: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}]

🧠 思考题

  1. 代码里为什么要判断if not line: continue,跳过空行?

  2. 如果 txt 文件中某一行少写一个字段,split 之后程序会报错,怎么用异常处理保护?

‹ 返回目录
🏠首页 Python 📦资源 👤关于我