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

如何在CSV数据库的嵌套列表中搜索姓名并实现不存在时添加选项

实现CSV数据库的姓名搜索与添加提示功能

我来帮你搞定这个CSV搜索功能!咱们先看看你现有的代码已经把CSV内容读进lines列表里了,每个元素是包含姓名和客户编号的行数据。接下来只需要加几步就能实现搜索和判断逻辑:

第一步:完善搜索与判断逻辑

在你读取完CSV的代码后面,添加以下逻辑(我也调整了原代码里的小细节,比如去掉换行符避免干扰):

lines = []
user_name = input("PLEASE ENTER YOUR FIRST AND LAST NAME: ")
with open("data_base.csv", "r") as in_file:
    for line in in_file:
        row = line.strip().split(",")  # 加strip()去掉换行符和首尾空格
        for i in range(1, len(row)):
            row[i] = eval(row[i])
        lines.append(row)

# 新增的搜索与判断核心逻辑
found = False
for row in lines:
    # 假设姓名是每行的第一个元素(对应你示例里的['Mariana', ...])
    # 用strip()避免输入或CSV里的空格导致匹配失败
    if row[0].strip() == user_name.strip():
        print(f"找到客户:{row[0]},客户编号:{row[1]}")
        found = True
        break  # 找到第一个匹配项就停止遍历,若允许多个匹配可以去掉break

if not found:
    print(f"未找到姓名为{user_name}的客户")
    choice = input("是否要添加该客户?(y/n): ")
    if choice.lower() == 'y':
        # 自动生成递增的客户编号:取现有最大编号+1,空文件则从1开始
        if lines:
            max_id = max(row[1] for row in lines)
            new_id = max_id + 1
        else:
            new_id = 1
        # 追加写入CSV文件
        with open("data_base.csv", "a") as out_file:
            out_file.write(f"\n{user_name.strip()},{new_id}")
        print(f"已添加客户:{user_name.strip()},客户编号:{new_id}")
    else:
        print("取消添加")

关键细节说明

  • 精准匹配:用strip()去除姓名两端的空格,避免输入时多打空格或者CSV里的空格导致匹配失败;如果需要忽略大小写,可以改成row[0].strip().lower() == user_name.strip().lower()
  • 存在性标记:用found布尔变量记录是否找到目标姓名,遍历结束后根据这个变量触发不同的操作
  • 自动编号:添加客户时自动生成递增编号,不用手动输入,避免重复或混乱

优化建议(可选)

你现在用split(",")处理CSV可能会有隐患(比如姓名里包含逗号的情况),更稳妥的方式是用Python内置的csv模块来读写,代码会更健壮:

import csv

user_name = input("PLEASE ENTER YOUR FIRST AND LAST NAME: ")
lines = []

# 用csv模块读取,自动处理特殊字符
with open("data_base.csv", "r") as in_file:
    reader = csv.reader(in_file)
    for row in reader:
        if len(row) >=2:
            row[1] = int(row[1])  # 转换客户编号为整数
        lines.append(row)

# 后续的搜索、判断、添加逻辑和上面一致...

这样处理包含特殊字符的字段会更可靠,避免手动拆分出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 11:10:38