使用 CSV 文件在循环中跳过第一行(字段)? [复制]

Posted

技术标签:

【中文标题】使用 CSV 文件在循环中跳过第一行(字段)? [复制]【英文标题】:Skip first line(field) in loop using CSV file? [duplicate] 【发布时间】:2013-01-18 10:00:10 【问题描述】:

可能重复: When processing CSV data, how do I ignore the first line of data?

我正在使用 python 打开 CSV 文件。我正在使用公式循环,但我需要跳过第一行,因为它有标题。

到目前为止,我记得是这样的,但它缺少一些东西:我想知道是否有人知道我正在尝试做的代码。

for row in kidfile:
    if row.firstline = false:  # <====== Something is missing here.
        continue
    if ......

【问题讨论】:

为什么有人给你看但不让你做笔记,为什么这与你的问题有关? 对 3.x 使用 csv_data.__next__(),对 2.x 使用 csv_data.next()。更多详情***.com/a/63096202/10961238 【参考方案1】:

这样做的最佳方法是在将文件对象传递给csv 模块之后 跳过标头:

with open('myfile.csv', 'r', newline='') as in_file:
    reader = csv.reader(in_file)
    # skip header
    next(reader)
    for row in reader:
        # handle parsed row

这可以正确处理多行 CSV 标题。


旧答案:

可能你想要这样的东西:

firstline = True
for row in kidfile:
    if firstline:    #skip first line
        firstline = False
        continue
    # parse the line

实现相同结果的另一种方法是在循环之前调用readline

kidfile.readline()   # skip the first line
for row in kidfile:
    #parse the line

【讨论】:

next 函数是一种更简洁的方法。 如果第一行中的一个值可以包含换行符\n 字符,这将不起作用。【参考方案2】:

有很多方法可以跳过第一行。除了Bakuriu所说的,我还要补充:

with open(filename, 'r') as f:
    next(f)
    for line in f:

和:

with open(filename,'r') as f:
    lines = f.readlines()[1:]

【讨论】:

我相信这是最优雅的变体。谢谢! 如果第一行中的一个值可以包含换行符\n 字符,这将不起作用。【参考方案3】:

csvreader.next() 将 reader 的可迭代对象的下一行作为列表返回,根据当前方言进行解析。

【讨论】:

在python3中,方法是reader.__next__(),应该使用next(reader)调用

以上是关于使用 CSV 文件在循环中跳过第一行(字段)? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Yii2 中跳过 CSV 文件的第一行

numpy loadtxt 跳过第一行

Python 3.2 在 csv.DictReader 中跳过一行

LOAD DATA LOCAL,如何跳过第一行?

在CSV文件中跳过标题

Kettle使用_31 CSV文件输入跳过第一(首)行之过滤记录