You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何遍历CSV特定行,检测新学生名时重新执行脚本?

单CSV文件下的学生数据分组处理方案

针对你这种同一学生数据跨多行、仅首行带姓名和性别的CSV格式,核心思路是逐行遍历并维护「当前学生」的状态,检测到新姓名时触发已有脚本的处理逻辑,具体实现步骤如下:

核心逻辑梳理

  1. 遍历CSV时,跳过表头行,逐行处理数据
  2. 对每行第一列(student_name)做去空格处理:
    • 若处理后非空:判定为新学生,先处理上一个学生的留存数据(如果存在),再初始化新学生的信息
    • 若处理后为空:判定为当前学生的后续科目数据,追加到该学生的科目列表中
  3. 遍历结束后,务必处理最后一个学生的数据(循环内不会触发新学生检测)

Python代码示例

假设你已有一个generate_student_report(student_info)函数负责生成报告,以下是适配该CSV格式的遍历逻辑:

import csv

def generate_student_report(student_info):
    # 这里是你已实现的生成报告逻辑
    print(f"正在处理学生:{student_info['name']}")
    print(f"性别:{student_info['gender']}")
    print("科目成绩:")
    for subj, score in student_info['subjects'].items():
        print(f"  {subj}: {score}")
    print("--- 报告生成完成 ---")

def process_single_csv(csv_path):
    current_student = None
    
    with open(csv_path, mode='r', newline='', encoding='utf-8') as file:
        reader = csv.reader(file)
        next(reader)  # 跳过表头
        
        for row in reader:
            # 处理第一列的空格,判断是否为新学生
            student_name = row[0].strip()
            if student_name:
                # 存在上一个学生,先处理其数据
                if current_student:
                    generate_student_report(current_student)
                
                # 初始化新学生信息:姓名、性别、第一个科目成绩
                current_student = {
                    'name': student_name,
                    'gender': row[1],
                    'subjects': {row[2]: row[3]}
                }
            else:
                # 追加当前学生的后续科目数据
                if current_student:
                    subject = row[1].strip()
                    marks = row[2].strip()
                    current_student['subjects'][subject] = marks
    
    # 处理最后一个学生的数据
    if current_student:
        generate_student_report(current_student)

# 调用示例
process_single_csv("students_data.csv")

关键细节说明

  • 处理空单元格:通过strip()去除第一列的空格,避免因空格导致的误判
  • 状态维护:用current_student字典持续存储当前学生的所有数据,直到检测到下一个新学生
  • 边界处理:循环结束后单独处理最后一个学生,避免遗漏

内容的提问来源于stack exchange,提问作者Anonymous

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.26 12:53:11