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

Python搜索CSV指定列匹配值并返回对应关联行的实现咨询

代码修改实现方案

完整可运行代码

import csv

# 请自行修改为你的CSV文件实际存储路径
CSV_PATH = '/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/pip/Locations.csv'

if __name__ == '__main__':
    # 接收用户输入的搜索值,转换为整数格式和列值类型对齐
    target = int(input("请输入要搜索的sightings数值:"))
    match_count = 0

    with open(CSV_PATH, 'r', encoding='utf-8') as csv_file:
        # 使用DictReader可以直接通过列名取值,避免索引计数错误
        csv_reader = csv.DictReader(csv_file, delimiter=',')
        
        print(f"匹配到sightings={target}的行如下:")
        for row in csv_reader:
            # 清除值前后的空格后转整数,和目标值对比
            if int(row['sightings'].strip()) == target:
                print(f'- sightings = {row["sightings"].strip()}, x = {row["x"].strip()}, y = {row["y"].strip()}.')
                match_count += 1
    
    print(f"共处理{len(csv_reader.fieldnames) + match_count}行,匹配到{match_count}条符合条件的结果。")

修改说明

  • 新增用户输入接收逻辑,自动将输入转换为整数格式,和sightings列的数值类型对齐
  • 替换原来的csv.reader为csv.DictReader,直接通过列名sightings取值,不用手动记列索引,后续修改搜索列也更方便
  • 遍历每行时增加匹配判断,只有sightings列值和用户输入相等的行才会输出
  • 新增匹配结果计数,运行结束后可以直观看到匹配到的条目数量

测试效果

比如你输入数值7,会输出如下结果:

请输入要搜索的sightings数值:7
匹配到sightings=7的行如下:
- sightings = 7, x = 23, y = 62.
- sightings = 7, x = 23, y = 62.
共处理8行,匹配到2条符合条件的结果。

内容的提问来源于stack exchange,提问作者Lilly Mayo-099

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 09:06:01