3 Formas faciles para Leer Archivos CSV con Python


Los archivos CSV (comma separated values) son muy útiles ya que muchos programas exportan datos en CSV y es una forma de tener un respaldo de nuestros datos. En este articulo les mostrate 3 formas faciles para leer archivos CSV con Python.

Python es un buen lenguaje de programación para manejar datos y hacer scripts que manipulen datos en CSV u otro formato.

Vamos a ver las 3 formas para leer archivos CSV.

Archivo de datos CSV

Lo primero sera mostrar el archivo de datos CSV que vamos a leer con los 3 scripts, ustedes pueden usar después el archivo que prefieran.

[code]

nombre,email,edad
Agustin Ramos,evilnapsis@gmail.com,26
Sebastian Ramos,kuro@xmail.com,23
Leonardo Ramos,leonovox@xmail.com,17
Jennifer Janix,jjvxdix@xmail.com,26
Diana Ximx,dian@xmail.com,26

[/code]

Este es un archivo CSV sencillo que tiene 3 columnas: nombre, email y edad

Los datos de los archivos por definición CSV comma separated values, siempre van separados por commas (,) pero es posible usar cualquier separador, y en los 3 scripts lo podemos cambiar, en caso de que deseen leer un archivo que no este separado por coma (,).

Forma 1: Usando Split

Esta es la forma mas fácil, sin usar ninguna librería

[code language=”python”]

archivo = open("datos.txt")
for linea in archivo:
datos = linea.split(",")
print(datos[0]+"\t" +datos[1]+"\t"+datos[2])

[/code]

Este ejemplo es la base para los siguientes ejemplos, ya que la estructura es la misma.

  1. Abrimos el archivo
  2. Recorremos linea por linea el archivo
  3. Usamos linea.split(‘,’) para separar la linea apartir del separador de coma y asi tener un array con 3 elementos (nombre, email, edad)
  4. Imprimimos los datos, es un array con 3 valores, pero siempre empieza por 0 (cero), por tanto tenemos los valores 0 = nombre, 1 = email, 2 = edad

En caso de que tengamos mas datos solo es cuestión de saber cuantas columnas tiene el CSV y asi agregarlas a la linea 4.

Forma 2: Usando CSV Reader

En esta forma vamos a usar una librería o modulo básico de python: csv

[code language=”python”]

import csv
archivo = open("datos.txt")
reader = csv.reader(archivo,delimiter=’,’)
for linea in reader:
print(linea[0]+"\t" +linea[1]+"\t"+linea[2])

[/code]

En este ejemplo hacemos lo siguiente:

  1. Importamos el modulo csv
  2. Abrimos el archivo
  3. Usamos el método csv.reader con el descriptor del archivo para descifrar el archivo, recordamos usar el deliminador ‘,’
  4. Recorremos linea por linea el reader
  5. Imprimimos los datos de la misma forma del ejemplo anterior, tomando el indice del array

En esta forma no usamos split pero la el csv.reader hace algo muy similar.

Forma 3: Usando CSV DictReader

Esta forma es un similar a la forma 2 solo cambia que en lugar de csv.reader usamos csv.DictReader y en lugar de usar el indice del array usaremos el nombre de la cabecera de cada columa:  nombre, email, edad.

[code language=”python”]

import csv
archivo = open("datos.txt")
reader = csv.DictReader(archivo,delimiter=’,’)
for linea in reader:
print(linea[‘nombre’]+"\t" +linea[’email’]+"\t"+linea[‘edad’])

[/code]

Como pueden ver solo cambian las lineas 3 y 5

  • Linea 3: Usamos csv.DictReader para descifrar el archivo
  • Linea 5: Imprimimos los valores usando el array y la cabecera del archivo CSV definidos en la linea 1 del CSV

Esta es una forma un poco mas legible, tomando en cuenta que un archivo CSV de 20 columnas, por ejemplo, es mas difícil de manipular, se puede olvidar o confundir el indice de alguna columna y con esta forma queda claro el rol de cada columna.

Resultado

Aqui les muestro el resultado de ejecutar cada script.

Espero les ayude.

No olviden dejar sus dudas y/o comentarios.

Leave a comment