[Python-es] Número de lineas de un fichero

Arnau Sanchez arnau en ehas.org
Lun Ago 27 23:25:49 CEST 2007


 > El 27/08/2007, a les 20:20, en/na bameda va escriure:

 >> quiero saber cuantas lineas tiene un fichero de texto para realizar
 >> con este numero unos cálculos dentro de un programa en python. Solo
 >> conozco el nombre y ubicación del fichero de texto. ¿Hay alguna
 >> función predefinida o tengo que leer el fichero entero y contar las
 >> lineas a mano?

Xin escribió:

> lineas = len(open('fichero.txt').readlines())

Para ficheros pequeños no hay problema, en aquellos realmente grandes 
tendrías algún problema con el uso de memoria (ya que el readlines lo 
lee entero).

Aprovechando que al iterar objetos fichero de texto obtenemos las 
líneas, se podría calcular la "longitud" de ese iterador. Se me ocurre:

iterlen = lambda it: sum(1 for _ in it)
lineas = iterlen(file("fichero.txt"))

Aunque seguro que hay alguna forma mejor de hacer el iterlen.



Más información sobre la lista de distribución Python-es