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

Xin xinxic en gmail.com
Mar Ago 28 09:15:04 CEST 2007


Esto seria parecido a esto:
	lineas = reduce(lambda x,y: x+y,[1 for l in file('fichero.txt')])

Esto evitar que lo cargue todo en memòria.
Claro que lo que si harà serà generar una lista con tantos "1" como 
líneas.

Quizà mejor así:

lineas = 0
for l in file('fichero.txt'):
	lineas += 1



Xin

El 27/08/2007, a les 23:25, en/na Arnau Sanchez va escriure:

> > 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.
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
>




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