Saltar al contenido

¿Cómo leer y escribir archivos CSV en Python usando el módulo csv? Guía paso a paso

28/04/2025
¿Cómo leer y escribir archivos CSV con el módulo csv?
Compartir:
Índice de Contenido

Introducción a los archivos CSV y el módulo csv en Python

Los archivos CSV (Comma Separated Values) son uno de los formatos más populares para almacenar datos tabulares, ya que son simples, legibles y ampliamente soportados por diferentes aplicaciones.
Python ofrece una manera muy sencilla y eficiente de leer y escribir archivos CSV a través de su módulo incorporado csv.
En esta guía paso a paso, aprenderás cómo manipular archivos CSV con Python utilizando el módulo csv, desde lo más básico hasta algunas opciones avanzadas.

¿Qué es el módulo csv en Python?

El módulo csv es una biblioteca estándar de Python que proporciona funciones para trabajar con archivos CSV. Permite leer, escribir y modificar datos en este formato de manera eficiente y sencilla,
sin la necesidad de instalar paquetes externos.

¿Cómo leer archivos CSV con el módulo csv?

Paso 1: Preparar el archivo CSV

Supongamos que tienes un archivo llamado datos.csv con el siguiente contenido:

nombre,edad,ciudad
Juan,28,Madrid
Ana,22,Barcelona
Pedro,35,Valencia
    

Paso 2: Leer el archivo CSV línea por línea

Para leer un archivo CSV en Python usando el módulo csv, sigue estos pasos:

  1. Abre el archivo usando la función open() en modo lectura.
  2. Crea un objeto csv.reader y pásale el archivo abierto.
  3. Itera sobre el objeto reader para acceder a cada fila como una lista.
Quizás también te interese:  ¿Cómo retornar múltiples valores desde una función? Métodos y ejemplos en programación

Ejemplo de código:


import csv

with open(datos.csv, r, newline=, encoding=utf-8) as archivo:
    lector = csv.reader(archivo)
    for fila in lector:
        print(fila)
    

Salida esperada:

[nombre, edad, ciudad]
[Juan, 28, Madrid]
[Ana, 22, Barcelona]
[Pedro, 35, Valencia]
    

Paso 3: Leer archivos CSV como diccionario

Si deseas trabajar con los datos como diccionarios (donde las claves son los nombres de las columnas), puedes usar csv.DictReader:


import csv

with open(datos.csv, r, newline=, encoding=utf-8) as archivo:
    lector = csv.DictReader(archivo)
    for fila in lector:
        print(fila)
    

Salida esperada:

{nombre: Juan, edad: 28, ciudad: Madrid}
{nombre: Ana, edad: 22, ciudad: Barcelona}
{nombre: Pedro, edad: 35, ciudad: Valencia}
    

¿Cómo escribir archivos CSV usando el módulo csv?

Paso 1: Preparar los datos a escribir

Puedes tener tus datos como una lista de listas o como una lista de diccionarios.
Por ejemplo:


# Lista de listas
datos = [
    [nombre, edad, ciudad],
    [Juan, 28, Madrid],
    [Ana, 22, Barcelona],
    [Pedro, 35, Valencia]
]

# Lista de diccionarios
datos_dicc = [
    {nombre: Juan, edad: 28, ciudad: Madrid},
    {nombre: Ana, edad: 22, ciudad: Barcelona},
    {nombre: Pedro, edad: 35, ciudad: Valencia}
]
    

Paso 2: Escribir una lista de listas en un archivo CSV

Para escribir datos en un archivo CSV usando listas, sigue estos pasos:

  1. Abre el archivo en modo escritura (w).
  2. Crea un objeto csv.writer.
  3. Usa writer.writerow() para escribir una sola fila o writer.writerows() para varias filas.

import csv

datos = [
    [nombre, edad, ciudad],
    [Juan, 28, Madrid],
    [Ana, 22, Barcelona],
    [Pedro, 35, Valencia]
]

with open(nuevo_datos.csv, w, newline=, encoding=utf-8) as archivo:
    escritor = csv.writer(archivo)
    escritor.writerows(datos)
    
Quizás también te interese:  ¿Cómo usar break, continue y pass en bucles en Python? Explicación fácil con ejemplos

Paso 3: Escribir una lista de diccionarios en un archivo CSV

Si tienes los datos como diccionarios, utiliza csv.DictWriter:


import csv

datos_dicc = [
    {nombre: Juan, edad: 28, ciudad: Madrid},
    {nombre: Ana, edad: 22, ciudad: Barcelona},
    {nombre: Pedro, edad: 35, ciudad: Valencia}
]

with open(nuevo_datos_dicc.csv, w, newline=, encoding=utf-8) as archivo:
    campos = [nombre, edad, ciudad]
    escritor = csv.DictWriter(archivo, fieldnames=campos)
    escritor.writeheader()
    escritor.writerows(datos_dicc)
    

Opciones avanzadas al trabajar con archivos CSV en Python

Separadores personalizados

No todos los archivos CSV usan la coma como separador. Puedes especificar un delimitador diferente usando el parámetro delimiter:


import csv

with open(datos_puntoycoma.csv, r, newline=, encoding=utf-8) as archivo:
    lector = csv.reader(archivo, delimiter=;)
    for fila in lector:
        print(fila)
    


Manejo de comillas y caracteres especiales

El módulo csv permite manejar comillas y caracteres especiales mediante los parámetros quotechar y quoting:


import csv

datos = [
    [nombre, comentario],
    [Juan, Hola, ¿cómo estás?],
    [Ana, Me gusta el "Python"]
]

with open(comentarios.csv, w, newline=, encoding=utf-8) as archivo:
    escritor = csv.writer(archivo, quotechar=", quoting=csv.QUOTE_MINIMAL)
    escritor.writerows(datos)
    

Conclusión

Quizás también te interese:  ¿Qué es zip() en Python y cómo combinar iterables fácilmente?

En esta guía paso a paso, has aprendido cómo leer y escribir archivos CSV en Python utilizando el módulo csv.
Este módulo es muy versátil y permite adaptar el manejo de archivos CSV a diferentes necesidades, desde lo más básico hasta opciones avanzadas como delimitadores personalizados y manejo de comillas.

Recuerda que el módulo csv es parte de la biblioteca estándar de Python, por lo que no necesitas instalar nada adicional para empezar a trabajar con archivos CSV.

Recursos adicionales

Compartir: