On Aug 27, 9:54 pm, SimonPalmer <[EMAIL PROTECTED]> wrote: > On Aug 27, 12:50 pm, SimonPalmer <[EMAIL PROTECTED]> wrote: > > > > > On Aug 27, 12:41 pm, Jon Clements <[EMAIL PROTECTED]> wrote: > > > > On Aug 27, 12:29 pm, "Simon Brunning" <[EMAIL PROTECTED]> > > > wrote: > > > > > 2008/8/27 SimonPalmer <[EMAIL PROTECTED]>: > > > > > > anyone know how I would find out how many rows are in a csv file? > > > > > > I can't find a method which does this on csv.reader. > > > > > len(list(csv.reader(open('my.csv')))) > > > > > -- > > > > Cheers, > > > > Simon B. > > > > [EMAIL PROTECTED]://www.brunningonline.net/simon/blog/ > > > > Not the best of ideas if the row size or number of rows is large! > > > Manufacture a list, then discard to get its length -- ouch! > > > Thanks to everyone for their suggestions. > > > In my case the number of rows is never going to be that large (<200) > > so it is a practical if slightly inelegant solution > > actually not resolved... > > after reading the file throughthe csv.reader for the length I cannot > iterate over the rows.
OK, I'll bite: Why do you think you need to know the number of rows in advance? > How do I reset the row iterator? You don't. You throw it away and get another one. You need to seek to the beginning of the file first. E.g.: C:\junk>type foo.csv blah,blah waffle q,w,e,r,t,y C:\junk>type csv2iters.py import csv f = open('foo.csv', 'rb') rdr = csv.reader(f) n = 0 for row in rdr: n += 1 print n, f.tell() f.seek(0) rdr = csv.reader(f) for row in rdr: print row C:\junk>csv2iters.py 3 32 ['blah', 'blah'] ['waffle'] ['q', 'w', 'e', 'r', 't', 'y'] HTH, John -- http://mail.python.org/mailman/listinfo/python-list