17 de mayo de 2016

43. CSV

El módulo de lectura de ficheros CSV

Módulo CSV
NOTA: Para los ejemplos, descárgate el fichero csv llamado "temperatura_media.csv", que contiene una serie de datos de temperaturas desde el año 1997 al 2012 de una ciudad española. En la misma carpeta donde ejecutarás los programas de ejemplo
1.- Recuperar datos
# -*- coding: utf-8 -*-

import csv

f = open("temperatura_media.csv", 'r')
try:
    reader = csv.reader(f)
    for i, row in enumerate(reader):
        print ("Fila: %d --> %s") % (i,row)

finally:
    f.close()
Uso reader() para extraer datos en formato csv, de un fichero directamente.
= = =
2.- Escribe datos
Este programa va leyendo y añadiendo una fila de datos (aleatoriamente) por cada año después de 2012. Analiza el programa y observa los comandos para usar csv para escribir en el fichero de temperaturas medias.
# -*- coding: utf-8 -*-

import csv, random, statistics as st

f = open("temperatura_media.csv", 'r')
ultimo = []
try:
    reader = csv.reader(f)
    for i,row in enumerate(reader):
        ultimo = row
        print row
finally:
    print "He terminado de leer datos"

f.close()

# añado un nuevo dato
# calculado en torno al anterior
nuevo = []
for i, dato in enumerate(ultimo):
    if i==0:
        nuevo.append(int(dato)+1)
    elif i>0 and i<11:
        signo = random.randrange(-1,1,2)
        x = float(dato.replace(",","."))
        nuevo.append(x + random.randrange(-50,50,1)/10)

media = st.mean(nuevo[1:])
nuevo.append(media)
print nuevo

escribir =[]
for i, dato in enumerate(nuevo):
    escribir.append(str(dato).replace(".",","))

print "Añadiré el dato: ", escribir

f = open("temperatura_media.csv", 'a')
archivo_escribir = csv.writer(f)
archivo_escribir.writerow(escribir)
f.close()
= = =
Documentación de csv

No hay comentarios:

Publicar un comentario