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

使用Python csv模块搜索CSV值并输出整行的异常问题

解决CSV文件搜索值并打印整行的问题

你的问题出在csv.reader的默认分隔符上:默认情况下csv.reader用逗号,分割每行内容,但你的文件每行是key : value格式,没有逗号,所以每行被解析成单个字符串的列表(比如['name : 222'])。此时'222' in line是检查列表中是否存在完全等于'222'的元素,自然匹配不到。

下面给你三种可行的解决方案:

方案1:指定正确的分隔符

既然你的行是用:(空格+冒号+空格)分隔的,直接给csv.reader指定分隔符:

import csv

fin = "你的文件名.csv"  # 替换成实际文件名
target = "222"

with open(fin, 'r') as csvfile:
    reader = csv.reader(csvfile, delimiter=' : ')
    for line in reader:
        if target in line:
            print(' : '.join(line))  # 还原成原格式打印,或直接print(line)查看列表

方案2:直接按文本行读取(更适配你的文件格式)

你的文件其实更像普通键值对文本,没必要用csv模块,直接逐行读取检查:

fin = "你的文件名.csv"
target = "222"

with open(fin, 'r') as f:
    for line in f:
        line = line.strip()  # 去掉换行符
        if target in line:
            print(line)

方案3:遍历列表元素检查包含关系

如果一定要用csv模块且不修改分隔符,可以遍历每行的每个元素,检查是否包含目标值:

import csv

fin = "你的文件名.csv"
target = "222"

with open(fin, 'r') as csvfile:
    reader = csv.reader(csvfile)
    for line in reader:
        # 检查该行的每个元素中是否包含目标值
        if any(target in item for item in line):
            print(''.join(line))  # 拼接成原行格式打印

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:07:45