On Sun, Jul 21, 2013 at 3:32 PM, Juan <htpc.c...@gmail.com> wrote:

> Hola, quiero leer solo la ultima linea de un fichero CSV (solo la linea que
> se actualizo por ultima vez) y no tengo claro cual sería la mejor solución,
> este es el código actual:
>
> #--------------------------------
> # leer fichero CSV
> #--------------------------------
> def leer_datos():
>         y =0
>         lectura = csv.reader(open("data.csv",
>         for index,row in enumerate(lectura)
>                 y +=1
>         print 'Linea: ' + str(linea + 1)
>         print 'Temperatura' + row[0] + ', Humedad: ' + row[1] + ',
> presion: ' + row[2]
>
>
Me parece correcta la idea de recorrer el archivo hasta el final.

La función enumerate() ya genera un índice y no es necesario inicializar
`y` e incrementarlo en cada iteracción. Si se añade 1 como segundo
argumento, el índice empieza por 1 en vez de en 0 así no hay que sumar 1.

Para iterar por el bucle `for` sin hacer nada se puede utilizar instrucción
`pass`.

También creo que queda mejor utilizar la interpolación de cadenas en el
print (el operador %) en vez de concatenar cadenas y valores.

Quedaría así:

f = open('data.csv')
reader = csv.reader(f)
for n, row in enumerate(reader, 1):
    pass
print u'Línea %s' % n
print u'Temperatura, %s, Humedad: %s, Presión: %s' % (row[0], row[1],
row[2])





>  gracias
>
> _______________________________________________
> Python-es mailing list
> Python-es@python.org
> http://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>



-- 
Miguel González
migonzal...@gmail.com
PGP ID: EEBD05D3
_______________________________________________
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/

Responder a