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

如何使用Python的io.open读取文件时跳过首行(表头)?

解决方法:先跳过CSV表头再循环读取内容

当然可行!你的思路完全没问题,之所以csus.readline()没达到预期,大概率是调用时机不对。下面给你两种靠谱的实现方式:

方法1:使用readline()提前跳过表头

只需要在进入for循环之前,先调用一次readline()读取并丢弃第一行(表头),之后文件指针会自动定位到第二行,后续的for循环就会从数据行开始读取了:

import io

with io.open('csus.csv', mode='r', encoding='latin1') as csus:
    # 读取并跳过第一行表头
    csus.readline()
    # 从第二行开始循环处理数据
    for line in csus:
        # 这里写你的数据处理逻辑,比如打印处理后的行
        print(line.strip())

方法2:用next()函数(更Pythonic的方式)

因为文件对象本身就是迭代器,调用next()可以直接获取迭代器的下一个元素(也就是第一行表头),之后的for循环会从剩余的行开始迭代,这种写法更符合Python的迭代器思维:

import io

with io.open('csus.csv', mode='r', encoding='latin1') as csus:
    # 跳过表头
    next(csus)
    for line in csus:
        # 处理每一行数据
        print(line.strip())

额外提示:处理空文件的情况

如果你的CSV文件有可能是空的,直接调用next()会抛出StopIteration异常,这时候可以给next()传一个默认值,避免报错:

import io

with io.open('csus.csv', mode='r', encoding='latin1') as csus:
    # 跳过表头,空文件时返回None,不会报错
    next(csus, None)
    for line in csus:
        print(line.strip())

两种方法都能完美实现你想要的“先跳过首行再循环”的需求,个人更推荐next()的写法,简洁又直观~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:19:19