[SOLUCIONADO] Ayuda

Iniciado por n4pst3r, Febrero 08, 2014, 01:58:37 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Febrero 08, 2014, 01:58:37 AM Ultima modificación: Agosto 18, 2014, 08:05:23 PM por Expermicid
Hola a todos, tengo un pequeño problema al ejecutar:

Código: python
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

Febrero 08, 2014, 03:45:54 AM #1 Ultima modificación: Febrero 08, 2014, 05:43:41 AM por 11Sep
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
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

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


Saludos!







No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

Gracias 11Sep fue muy util y sencillo. Saludos

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

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

O un equivalente:
Código: python

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


Saludos !
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta

un raw_input en una lista por comprensión? no lo habia pensado, interesante :D

No tienes permitido ver los links. Registrarse o Entrar a mi 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 !
No tienes permitido ver los links. Registrarse o Entrar a mi cuenta