[Python-es] Leer ultima linea de fichero CSV?

Kiko kikocorreoso en gmail.com
Dom Jul 21 16:12:50 CEST 2013


2013/7/21 Juan <htpc.casa en gmail.com>

> 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]
>
>  gracias
>

Hola, puedes usar deque (en el módulo collections) para simular un uso
parecido al tail de algunos sistemas operativos:

http://docs.python.org/2/library/collections.html#deque-recipes

Lo siguiente funciona pensando que tu fichero csv tiene 3 columnas y está
separado por comas. La función te devuelve los valores de cada columna como
float.

from collections import deque
def tail(file):
    kk = deque(open(file), maxlen = 1)
    temp,hum,pres = kk[0].split('\n')[0].split(',')
    return float(temp), float(hum), float(pres)

t, h, p = tail('tufichero.csv') # t, h, p es para temperatura, humedad y
presión
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20130721/8278d274/attachment.html>


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