I am trying to extract the header of a CSV file in Python by using the CSV module.
The CSV file is quite flat, and looks something like:
This, That, The Other
1, 2, 3
I am doing the following:
- Read in the CSV file and make the reader object
- push the reader's iterator to the next line to force it to access the first line at least once (from the csv module documentation: "If not passed as a parameter when creating the object, this attribute is initialized upon first access or when the first record is read from the file.")
- assigning the
.fieldnames
attribute to a variable and print it
here is a snippet of code to illustrate:
datafile = open(fname, "rb")
reader = csv.reader(datafile) #use csv module to parse in the header
reader.next() # read next line so header will be accessed
rfd_header = reader.fieldnames
print "header:\n"
print rfd_header
This results in an error:
AttributeError: '_csv.reader' object has no attribute 'fieldnames'
Which sounds like the .fieldnames
attribute isn't there, but is in the documentation of Python 2.6.6 (same version of python I am using)
I would appreciate any insight into this mystery. If there is an alternative method to extract the header that would be awesome too!
Thanks.