Underc0de

Foros Generales => Dudas y pedidos generales => Mensaje iniciado por: n4pst3r en Febrero 08, 2014, 01:58:37 AM

Título: [SOLUCIONADO] Ayuda
Publicado por: n4pst3r en Febrero 08, 2014, 01:58:37 AM
Hola a todos, tengo un pequeño problema al ejecutar:

Código (python) [Seleccionar]
f = open("1.txt","r")
for cadena in f.read().split('\n'):
      print len(cadena)
f.close()


pasa que cuando lo ejecuto sale
3
3
3
3

cuando lo que quiero es que aparesca el total de las lineas, osea que si el archivo txt tiene 200 que salga el numero 200. Gracias
Título: Re:ayuda
Publicado por: Once en Febrero 08, 2014, 03:45:54 AM
Lo que estas haciendo es contar la cantidad de caracteres por línea no la cantidad total de líneas. Para lo que necesitas, sólo debes hacer un len() a la tupla que te regresa split() y no recorrerla como lo estás haciendo

Código (python) [Seleccionar]
f = open("1.txt","r")

print len(f.read().split("\n"))

f.close()


O para no usar el split, puedes usar el método readlines:

Código (python) [Seleccionar]

f = open("1.txt","r")
print len(f.readlines())
f.close()


Saludos!
Título: Re:ayuda
Publicado por: n4pst3r en Febrero 13, 2014, 10:10:24 PM
Gracias 11Sep fue muy util y sencillo. Saludos
Título: Re:ayuda
Publicado por: JaAViEr en Febrero 22, 2014, 03:00:12 PM
Hola, muy buenos días !

A pesar de que las soluciones están dadas, nunca es malo exponer un código reducido :
Código (python) [Seleccionar]

print len([x for x in open(raw_input("Archivo:"))])

O un equivalente:
Código (python) [Seleccionar]

print sum([1 for x in open(raw_input("Archivo:"))])


Saludos !
Título: Re:ayuda
Publicado por: deni_celine en Febrero 22, 2014, 04:55:59 PM
un raw_input en una lista por comprensión? no lo habia pensado, interesante :D
Título: Re:ayuda
Publicado por: JaAViEr en Marzo 16, 2014, 07:43:54 AM
No tienes permitido ver enlaces. Registrate o Entra a tu cuenta
un raw_input en una lista por comprensión? no lo habia pensado, interesante :D
Soy fan número 1 de las listas por comprensión :P , me quedaron grabadas cuando aprendí Haskell jaja

Saludos !