代码之家  ›  专栏  ›  技术社区  ›  ggulgulia

python如何从csv文件的第3行读取第2列[关闭]

  •  1
  • ggulgulia  · 技术社区  · 6 年前

    我必须解析一个csv文件,文件中的第一个有用信息位于第三行和第二列。

    以下是迄今为止我所做的工作:

    f = open(filename, r)
    reader = csv.reader(f, delimeter=';')
    i=0
    for row in reader:
        if (i == 2):
            useful_data  = row[2]
            break
        else:
            i += 1
    

    但我不喜欢这种方法。有人能提出更好的方法吗?

    3 回复  |  直到 6 年前
        1
  •  4
  •   Sasha Tsukanov    6 年前

    itertools.islice 这里可以简明扼要:

    with open(filename) as f:
        reader = csv.reader(f, delimiter=';')
        useful_data = next(islice(reader, 2, None))[2]
    
        2
  •  2
  •   Jean-François Fabre    6 年前

    而不是 for 然后循环 break ,对文件使用手动迭代 next

    只要你想用多少行就跳多少行 下一个 在csv阅读器上,然后使用 下一个 最后一次选择所需列:

    with open(filename) as f:
        reader = csv.reader(f, delimiter=';')
        # skip 2 rows
        for _ in range(2):
            next(reader)
    
        useful_data = next(reader)[2]
    
        3
  •  0
  •   Lars    6 年前

    你到底不喜欢什么?我认为稍微好一点的版本是:

    with open(filename, 'r') as f:
        reader = csv.reader(f, delimiter=';')
        for i, row in enumerate(reader):
            if i == 2:
                useful_data = row[2]
                break