Tengo un objeto csv DictReader (usando Python 3.1), pero me gustaría saber el número de líneas/filas contenidas en el lector antes de I iterate through it. Algo así como de la siguiente manera ...Número de líneas en csv.DictReader
myreader = csv.DictReader(open('myFile.csv', newline=''))
totalrows = ?
rowcount = 0
for row in myreader:
rowcount +=1
print("Row %d/%d" % (rowcount,totalrows))
Sé que podría obtener el total por iteración a través del lector, pero entonces yo no podía correr el bucle 'para'. Pude iterar a través de una copia del lector, pero no puedo encontrar cómo copiar un iterador.
También podría utilizar
totalrows = len(open('myFile.csv').readlines())
pero que parece una reapertura innecesaria del archivo. Prefiero obtener el recuento de DictReader si es posible.
Cualquier ayuda sería apreciada.
Alan
Buena solución - Soy bastante nuevo con la idea de los iteradores, así que realmente no había apreciado enumerar() hasta ahora. Saludos. –
Solo tenga cuidado con el tamaño de su conjunto de datos aquí. Convertir su lector en una lista podría tomar GOBS de memoria. –
Esto cargará todos los datos en la memoria, contar líneas -1 es soluciones muy buenas –