Number of lines in csv.DictReader
        Posted  
        
            by Alan Harris-Reid
        on Stack Overflow
        
        See other posts from Stack Overflow
        
            or by Alan Harris-Reid
        
        
        
        Published on 2010-05-23T03:03:07Z
        Indexed on 
            2010/05/23
            3:10 UTC
        
        
        Read the original article
        Hit count: 476
        
Hi there,
I have a csv DictReader object (using Python 3.1), but I would like to know the number of lines/rows contained in the reader before I iterate through it. Something like as follows...
myreader = csv.DictReader(open('myFile.csv', newline=''))
totalrows = ?
rowcount = 0
for row in myreader:
    rowcount +=1
    print("Row %d/%d" % (rowcount,totalrows))
I know I could get the total by iterating through the reader, but then I couldn't run the 'for' loop. I could iterate through a copy of the reader, but I cannot find how to copy an iterator.
I could also use
totalrows = len(open('myFile.csv').readlines())
but that seems an unnecessary re-opening of the file. I would rather get the count from the DictReader if possible.
Any help would be appreciated.
Alan
© Stack Overflow or respective owner