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

CSV文件读取与条件筛选问题:仅打印row[0]为'295'的行

解决CSV文件筛选打印特定行的问题

我来帮你调整代码,让它只打印row[0]等于'295'的行,同时修复原代码里的几个小问题:

原代码的问题分析

  • 你在循环里直接print row,没有添加任何条件判断,所以会把文件里所有行都打印出来
  • try-except块放在循环外面,根本无法对每一行的处理逻辑生效;而且错误信息的字符串格式化写法有误(print "Error with row: " % row缺少占位符,应该改成print "Error with row: %s" % row)
  • 解构赋值的列表推导式逻辑混乱,row [0] != '297'的条件放在这里完全不对,还可能导致列表长度不匹配,引发赋值失败

修正后的代码

import csv  # 确保导入csv模块,如果你还没添加的话

csvfile = "your_file.csv"  # 替换成你的实际CSV文件路径

# 用with语句打开文件,自动处理关闭操作,更安全
with open(csvfile, 'r') as f:
    reader = csv.reader(f)
    for row in reader:
        # 只处理row[0]等于'295'的行
        if row[0] == '295':
            try:
                # 对当前行的所有元素解码,再解构赋值
                location_id, vrm, valid_datetime = [x.decode('utf-8-sig') for x in row]
                # 打印原始行,或者你也可以打印解码后的字段:print(location_id, vrm, valid_datetime)
                print(row)
            except Exception as e:
                # 打印错误信息和出错的行,方便排查问题
                print("Error with row: %s, error detail: %s" % (row, str(e)))

关键改进点

  • 新增if row[0] == '295'的判断逻辑,精准筛选你需要的行
  • 将try-except移到循环内部,对每一行的解码和赋值操作做异常捕获
  • 用with open(...)管理文件,避免手动关闭文件的遗漏风险
  • 修复了错误信息的格式化方式,现在能清晰展示出错的行和具体错误原因
  • 调整了解码的列表推导式,去掉了错误的条件判断,确保对当前行的所有元素正常解码

这样运行代码后,就只会打印row[0]等于'295'的行啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 04:54:01