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/