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

Python实现员工ID查姓名:CSV处理代码问题咨询

解决CSV员工ID查询对应姓名的问题

原代码存在的问题

  • 缩进错误:if语句不在for循环块内,循环结束后才会执行匹配,只能检查最后一行的ID
  • 逻辑漏洞:每次循环覆盖变量b的值,无法遍历所有员工ID做匹配
  • 功能缺失:没有读取和输出匹配到的员工姓名
  • 文件操作不规范:未手动关闭文件,存在资源泄漏风险
  • 提示错误:输入提示要求输入邮编后三位,和实际需求(输入员工ID)不符

修正后的代码

import csv

# 用with语句自动管理文件,无需手动关闭
with open("id.csv", 'r', newline='') as fileo:
    # 确保CSV表头是'id'和'name',如果你的表头不同请替换成实际名称
    reader = csv.DictReader(fileo)
    target_id = input("请输入员工ID:")
    # 根据需求补全ID格式,比如前导加6个零
    formatted_id = "000000" + target_id

    is_found = False
    for row in reader:
        if row['id'] == formatted_id:
            print(f"找到员工:姓名为 {row['name']}")
            is_found = True
            break  # 找到后直接退出循环,不用继续遍历
    if not is_found:
        print("未找到该ID对应的员工")

关键改动说明

  1. 文件管理:使用with语句打开文件,Python会在代码块结束后自动关闭文件,避免资源浪费
  2. 缩进修正:把ID匹配的if语句放到for循环内部,实现逐行检查每一个员工ID
  3. 功能补全:读取每行的name字段,匹配成功后直接输出员工姓名
  4. 状态标记:添加is_found变量处理未找到匹配ID的情况,给用户明确反馈
  5. 效率优化:匹配成功后用break终止循环,不用遍历剩余数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 06:30:31