¿Cómo leer un archivo CSV en Python?

Hoy veremos cómo leer un archivo CSV utilizando Python. Utilizaremos la función reader() que es parte del módulo csv. Este módulo tiene funciones para escribir o leer archivos en formato CSV y es parte de la librería estándar de Python por lo que no tendrás que instalarlo. Acá te dejo el enlace a la documentación oficial por si quieres darle una revisada.

Veremos algunos ejemplos de uso de la función reader(). Pero primero vamos a crear un archivo al que llamaremos ejemplo.csv y será el que utilicemos en este y los siguientes ejercicios. En ese archivo colocaremos el siguiente texto:

nombre,telefono,edad
Marcos,3478230957,24
Alicia,2376450912,30
Pedro,5654239819,32
Tania,9856548921,25
Gloria,8778214565,29

El siguiente código nos permitirá abrir el archivo que acabamos de crear y lo iremos recorriendo línea por línea. Usaremos la función open() para abrir el archivo en modo de solo lectura y la función reader() que nos permitirá leer el contenido y separarlo en listas. El código que usaremos es el siguiente:

import csv

with open("ejemplo.csv") as f:
    directorio = csv.reader(f)
    for linea in directorio:
        print(linea)

>>> import csv
>>> with open(«ejemplo.csv») as f:
… directorio = csv.reader(f)
… for linea in directorio:
… print(linea)

[‘nombre’, ‘telefono’, ‘edad’]
[‘Marcos’, ‘3478230957’, ’24’]
[‘Alicia’, ‘ 2376450912′, ’30’]
[‘Pedro’, ‘5654239819’, ’32’]
[‘Tania’, ‘9856548921’, ’25’]
[‘Gloria’, ‘8778214565’, ’29’]

Notarás que se imprime todo el contenido del archivo, incluida la primera línea que tiene los títulos. Haremos una adecuación para saltarnos esa primera línea utilizando next() y que se impriman solo los valores.

import csv

with open("ejemplo.csv") as f:
    directorio = csv.reader(f)
    next(directorio)
    for linea in directorio:
        print(linea)

>>> import csv
>>> with open(«ejemplo.csv») as f:
… directorio = csv.reader(f)
… next(directorio)
… for linea in directorio:
… print(linea)

[‘Marcos’, ‘3478230957’, ’24’]
[‘Alicia’, ‘ 2376450912′, ’30’]
[‘Pedro’, ‘5654239819’, ’32’]
[‘Tania’, ‘9856548921’, ’25’]
[‘Gloria’, ‘8778214565’, ’29’]

Para que la salida sea mas amigable podemos dividir la información en variables y luego utilizarlas al imprimir el contenido. Hagamos los ajustes necesarios al código.

import csv

with open("ejemplo.csv") as f:
    directorio = csv.reader(f)
    next(directorio)
    for linea in directorio:
        nombre, telefono, edad = linea
        print(" {} tiene {}. Su telefono es: {}".format(nombre, edad, telefono))

>>> import csv
>>> with open(«ejemplo.csv») as f:
… directorio = csv.reader(f)
… next(directorio)
… for linea in directorio:
… nombre, telefono, edad = linea
… print(» {} tiene {}. Su telefono es: {}».format(nombre, edad, telefono))

Marcos tiene 24. Su telefono es: 3478230957
Alicia tiene 30. Su telefono es: 2376450912
Pedro tiene 32. Su telefono es: 5654239819
Tania tiene 25. Su telefono es: 9856548921
Gloria tiene 29. Su telefono es: 8778214565

Recuerda que para dividir la información en variables es necesario que se tengan la misma cantidad de variables que valores. Si hay una diferencia en cantidades obtendremos un error de tipo ValueError.

Espero que esta entrada te sea muy útil para leer un archivo CSV en Python. Cuéntame, ¿qué te pareció esta entrada?

¡No olvides suscribirte a nuestro boletín!

¡No enviamos spam! Lee más en nuestra política de privacidad

1 comentario en «¿Cómo leer un archivo CSV en Python?»

Deja un comentario