Skip first line(field) in loop using CSV file?

148,236

Solution 1

The best way of doing this is skipping the header after passing the file object to the csv module:

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

This handles multiline CSV headers correctly.


Older answer:

Probably you want something like:

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

An other way to achive the same result is calling readline before the loop:

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

Solution 2

There are many ways to skip the first line. In addition to those said by Bakuriu, I would add:

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

and:

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

Solution 3

csvreader.next() Return the next row of the reader’s iterable object as a list, parsed according to the current dialect.

Share:
148,236
Raitis Kupce
Author by

Raitis Kupce

I am SEO specialist, part time programmer and web developer.

Updated on July 09, 2022

Comments

  • Raitis Kupce
    Raitis Kupce almost 2 years

    Possible Duplicate: When processing CSV data, how do I ignore the first line of data?

    I am using python to open CSV file. I am using formula loop but I need to skip the first row because it has header.

    So far I remember was something like this but it is missing something: I wonder if someone knows the code for what I am trying to do.

    for row in kidfile:
        if row.firstline = false:  # <====== Something is missing here.
            continue
        if ......
    
  • travc
    travc about 9 years
    In python3, the method is reader.__next__(), which should be called by using next(reader)
  • vaer-k
    vaer-k over 7 years
    The next function is a much more concise approach.
  • Alexander Oh
    Alexander Oh almost 4 years
    I believe this is the most elegant variant. Thanks!
  • Boris Verkhovskiy
    Boris Verkhovskiy about 3 years
    If one of the values in the first row can contain a newline \n character, this won't work.
  • Boris Verkhovskiy
    Boris Verkhovskiy about 3 years
    If one of the values in the first row can contain a newline \n character, this won't work.