10

How would I remove the first line of a CSV file in python, the first few lines of my CSV file are:

Domain Name, ItemID, Auction Type, Time Left, Price, Bids, Domain Age, Traffic,ValuationPrice
TICKETFINE.COM,134774365,Bid,05/09/2014 08:00 AM (PDT),$100,0,0,0,$0
CREATINGMY.COM,134774390,Bid,05/09/2014 08:00 AM (PDT),$500,0,0,0,$0
WPTHEMEHELP.COM,134774444,Bid,05/09/2014 08:00 AM (PDT),$45,1,0,0,$0
APK-ZIPPY.COM,134774445,Bid,05/09/2014 08:00 AM (PDT),$10,0,0,0,$0
FAMILYBUZZMARKETING.COM,134689583,Bid,05/09/2014 08:00 AM (PDT),$90,0,0,0,$0
AMISRAGAS.COM,134689584,Bid,05/09/2014 08:00 AM (PDT),$35,0,0,0,$0
martineau
  • 119,623
  • 25
  • 170
  • 301
Coder77
  • 2,203
  • 5
  • 20
  • 28

5 Answers5

27
with open("test.csv",'r') as f:
    with open("updated_test.csv",'w') as f1:
        next(f) # skip header line
        for line in f:
            f1.write(line)
Padraic Cunningham
  • 176,452
  • 29
  • 245
  • 321
1

This is what I do when I want to skip reading the first line of a CSV.

All that has to be done is call the next() function of the CSV object, in this case - read, and then the pointer to the reader will be on the next line.

import csv

try:
    read = csv.reader(f)
    read.next()     # Skip the first 'title' row.
    for r in read:
        # Do something
finally:
    # Close files and exit cleanly
    f.close()

Hope this is pretty clean an simple for your purposes!

signus
  • 1,118
  • 14
  • 43
1

For anyone else caught up this error:

AttributeError: '_io.TextIOWrapper' object has no attribute 'next' python

In Python3 a text file object doesn't have a next() function. So you can't call f.next().

Instead you should use f.readline() as specified in this answer.

Or you can use the built-in next(f) which @vrjr mentioned in the comment, and is shown in this answer.

Community
  • 1
  • 1
Yep_It's_Me
  • 4,494
  • 4
  • 43
  • 66
0

Are you opening it and re-saving it with the same name?

Otherwise, you could read it in without reading in the first line and writing to a new file without that line.

mauve
  • 2,707
  • 1
  • 20
  • 34
-1
loopbackbee
  • 21,962
  • 10
  • 62
  • 97
  • As an additional hint, files get read in as iterables, and you can use `next(name_of_iterable)` to get through one iteration. – Adam Smith May 12 '14 at 17:48
  • @squiguy: The `csv` module should not be needed here except in the rare case that the header row has embedded newlines that need to be parsed. – Steven Rumbalski May 12 '14 at 17:54