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

如何用Python更优地读取CSV文件第3行第2列的数据?

嘿,我完全懂你为啥嫌弃这种靠计数器循环的写法——确实不够优雅,还容易出错。咱们来搞几个更Pythonic、更简洁的方案:

方案1:用itertools.islice精准定位(推荐)

这个方法最直接,因为csv.reader是迭代器,islice可以帮我们直接跳过前面不需要的行,精准拿到目标行:

import csv
from itertools import islice

with open(filename, 'r') as f:
    reader = csv.reader(f, delimiter=';')
    # 跳过前2行(第3行的索引是2,从0开始计数),只取这一行
    target_row = next(islice(reader, 2, 3))
    # 注意:第2列对应的索引是1(列也是从0开始的)
    useful_data = target_row[1]

这里用with语句自动管理文件,不用手动关闭,比直接open更安全;而且islice的写法清晰明了,一眼就能看出我们要跳过多少行、取哪一行。

方案2:用next()手动跳过行

如果不想引入itertools,直接用next()也能搞定,写法同样简洁:

import csv

with open(filename, 'r') as f:
    reader = csv.reader(f, delimiter=';')
    # 跳过前2行
    for _ in range(2):
        next(reader)
    # 此时reader的指针已经指向第3行,直接取对应列
    useful_data = next(reader)[1]

另外提几个你原代码里的小细节问题:

  • open(filename, r)里的r要加引号,应该是'r'
  • delimeter拼写错啦,正确的是delimiter
  • 你说有效信息在第3行第2列,但原代码取的是row[2],这是第3列(因为列索引从0开始),如果确实是第2列的话,要改成row[1]哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:29:09