Pythonic use of CSV module to skip headers?

Peter Otten __peter__ at web.de
Fri Dec 3 04:26:50 EST 2004


Ramon Felciano wrote:

> I'm using the csv module to parse a tab-delimited file and wondered
> whether there was a more elegant way to skip an possible header line.
> I'm doing
> 
> line = 0
> reader = csv.reader(file(filename))
> for row in reader:
> if (ignoreFirstLine & line == 0):
> continue
> line = line+1
> # do something with row
> 
> The only thing I could think of was to specialize the default reader
> class with an extra skipHeaderLine constructor parameter so that its
> next() method can skip the first line appropriate. Is there any other
> cleaner way to do it w/out subclassing the stdlib?

>>> import csv
>>> f = file("tmp.csv")
>>> f.next()
'# header\n'
>>> for row in csv.reader(f):
...     print row
...
['a', 'b', 'c']
['1', '2', '3']

This way the reader need not mess with the header at all.

Peter




More information about the Python-list mailing list