You need to enable JavaScript to run this app. 如何检查CSV文件指定列数值并跳过末尾不固定数量的无关行
优惠活动
大模型
产品
解决方案
定价
更多

如何检查CSV文件指定列数值并跳过末尾不固定数量的无关行

问题原因
  • csv.reader 本质是迭代器对象,不支持列表的切片语法,所以你写的 reader[1:-8] 会直接报错,这是之前代码运行失败的核心原因。
  • 无需提前获知CSV总行数,也不用固定跳过最后8行,直接根据有效行的特征做过滤即可:你给出的有效数据行第4列(索引为3)都是可转换为整数的数字,而末尾无效行的对应位置是f1-score这类非数字字符串,我们可以利用这个特征过滤无效行。
可用解决方案

直接在遍历的时候做异常捕获+合法性判断即可,修改后代码如下:

import ctypes
import csv

with open('data.csv') as csv_file:
    reader = csv.reader(csv_file)
    next(reader) # 跳过表头

    for row in reader:
        # 先判断第4列是否能转成整数,不能就直接跳过这行(对应末尾无效行)
        try:
            col3_val = int(row[3])
        except (ValueError, IndexError):
            continue
        # 走到这里说明是有效行,再做数值判断
        if col3_val >=5:
            print(row)
            mymessage = 'A message'
            title = 'Popup window'
            ctypes.windll.user32.MessageBoxA(0, mymessage.encode('gbk'), title.encode('gbk'), 0)

补充说明:额外加了IndexError捕获是为了过滤可能出现的空行、列数不足的异常行;如果你的系统弹窗出现乱码,可以把MessageBoxA换成MessageBoxW,去掉.encode('gbk')的部分即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.11 19:00:00