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
相关产品推荐
相关产品推荐

