Python:如何在CSV中始终从第二行开始?

7
b 包含一个 csv 文件的内容 我需要遍历 b 的每一行;但是,由于它有一个标题行,我不想关注标题行。如何从第二行开始?
for row in b (starting from the second row!!):
5个回答

13

在每个最近版本的Python中,将next(b)(在旧版本中是b.next())添加到开头以跳过第一行(如果b是迭代器;如果它是一个列表,则当然可以使用for row in b[1:]:)。


4
b.next()
for row in b:
    # do something with row

但是考虑使用csv模块,特别是与DictReader一起使用。


2
最简单的方法是使用DictReader。它会自动消耗第一行。

1
如何使用DictReader跳过行? - Lyman Zerga
@LymanZerga,不确定你的意思?DictReader是用于特定目的的,其中第一行包含列名,所有后续行都包含数据。也许你想在将它们传递给DictReader之前过滤掉一些行? - John La Rooy
1
是的,没错。在表头之前有一些行,我该如何忽略它们?如果我从 CSV 文件中删除这些行,DictReader 就可以正常工作,并将 CSV 表格转换为字典。 - Lyman Zerga
@LymanZerga,您应该使用“提问”按钮。我们不应该在注释中进行讨论。 - John La Rooy

0
你可以使用这段代码:
with open('data.csv', 'a', newline='') as filecsv:
   datafile = csv.writer(filecsv)
   datafile.writerows(list)

0

我刚刚找到了一种新的方法,可以使用 csv.readerline_num 属性来实现:

import csv
reader = csv.reader(open(myfile))
for line in reader:
    if reader.line_num == 1:
        continue
    print(line)

这段代码在 Python 3.6.8 下测试通过。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接