Python

Python

Tutorial Python: Módulo csv

Python CSV: manipulación de archivos. Domina la manipulación de archivos CSV en Python con ejemplos prácticos y detallados.

El módulo csv de Python es una parte integral de la biblioteca estándar que proporciona funcionalidades para leer y escribir datos en formato CSV (valores separados por coma). Este módulo incluye tanto funciones para leer y escribir datos, como clases que permiten una mayor personalización en la manipulación de archivos CSV.

Antes de entrar en los detalles, es importante aclarar que, aunque el nombre CSV significa 'valores separados por coma', el módulo csv puede trabajar con cualquier delimitador. Por ejemplo, también se puede usar para leer y escribir archivos TSV (valores separados por tabulación).

Lectura de archivos CSV

El primer paso para trabajar con un archivo CSV en Python es abrir el archivo. Esto se puede hacer con la función incorporada open(), utilizando el modo de lectura('r'). Una vez abierto el archivo, se puede utilizar el lector de CSV que se proporciona en el módulo csv.

import csv

with open('archivo.csv', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

Cada fila se devuelve como una lista de cadenas. Cada elemento de la lista corresponde a una celda en la fila del archivo CSV.

Escritura en archivos CSV

Al igual que con la lectura de archivos CSV, primero debe abrirse el archivo. En este caso, sin embargo, se abre el archivo en modo de escritura ('w'). Luego, podrá usarse el escritor de CSV para escribir en el archivo.

import csv

data = [['Nombre', 'Edad'], ['Juan', 25], ['Ana', 27], ['Pedro', 23]]

with open('archivo.csv', 'w', newline='') as file:
    writer = csv.writer(file)
    writer.writerows(data)

Aquí, writerows() es una función que toma una lista de listas y escribe cada lista como una fila en el archivo CSV. Si se quiere escribir una sola fila, se puede utilizar la función writerow().

Uso de DictReader y DictWriter

Además de los lectores y escritores básicos, el módulo csv también proporciona el DictReader y DictWriter, que permiten leer y escribir archivos CSV con un diccionario, lo cual puede ser muy útil cuando las columnas del archivo CSV tienen nombres.

import csv

with open('archivo.csv', 'r') as file:
    reader = csv.DictReader(file)
    for row in reader:
        print(row)

En este caso, cada fila se devuelve como un diccionario ordenado (OrderedDict). Las claves del diccionario son los nombres de las columnas y los valores son los valores de las celdas correspondientes.

La escritura con DictWriter es similar:

import csv

data = [{'Nombre': 'Juan', 'Edad': 25}, {'Nombre': 'Ana', 'Edad': 27}, {'Nombre': 'Pedro', 'Edad': 23}]
fieldnames = ['Nombre', 'Edad']

with open('archivo.csv', 'w', newline='') as file:
    writer = csv.DictWriter(file, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(data)

Aquí, writeheader() es una función que escribe las claves del diccionario como la primera fila del archivo CSV (la fila del encabezado). Luego, writerows() escribe cada diccionario como una fila en el archivo CSV.

Delimitadores y citas personalizadas

Por defecto, el módulo csv utiliza una coma como delimitador y comillas dobles para citar campos que contienen caracteres especiales (como comas). Sin embargo, se puede personalizar el delimitador y el carácter de citación.

Por ejemplo, para leer un archivo CSV que utiliza un punto y coma como delimitador y comillas simples para citar campos, se podría hacer lo siguiente:

import csv

with open('archivo.csv', 'r') as file:
    reader = csv.reader(file, delimiter=';', quotechar="'")
    for row in reader:
        print(row)

Esto también se puede hacer al escribir archivos CSV:

import csv

data = [['Nombre', 'Edad'], ['Juan', 25], ['Ana', 27], ['Pedro', 23]]

with open('archivo.csv', 'w', newline='') as file:
    writer = csv.writer(file, delimiter=';', quotechar="'")
    writer.writerows(data)

Estos son solo algunos de los aspectos básicos del módulo csv de Python. Proporciona muchas más funcionalidades, como diferentes formatos de citas, manipulación de espacios en blanco, etc., que pueden ser útiles en diferentes contextos.

Certifícate en Python con CertiDevs PLUS

Ejercicios de esta lección Módulo csv

Evalúa tus conocimientos de esta lección Módulo csv con nuestros retos de programación de tipo Test, Puzzle, Código y Proyecto con VSCode, guiados por IA.

Polimorfismo

Python
Puzzle

Clases y objetos

Python
Código

Listas

Python
Código

Crear módulos y paquetes

Python
Puzzle

Estructuras de control

Python
Test

Diccionarios

Python
Puzzle

Módulo math

Python
Test

Importar módulos y paquetes

Python
Test

Operadores

Python
Test

OOP en python

Python
Proyecto

Estructuras de control

Python
Código

Instalación de Python y creación de proyecto

Python
Test

Listas

Python
Puzzle

Estructuras de control

Python
Puzzle

Encapsulación

Python
Test

Gestor de tareas con operaciones CRUD en Python

Python
Proyecto

Clases y objetos

Python
Test

Crear módulos y paquetes

Python
Test

Encapsulación

Python
Puzzle

Tipos de datos

Python
Test

Herencia de clases

Python
Código

Tuplas

Python
Test

Herencia

Python
Puzzle

Módulo datetime

Python
Puzzle

Excepciones

Python
Puzzle

Operadores

Python
Puzzle

Funciones lambda

Python
Puzzle

Clases y objetos

Python
Puzzle

Diccionarios

Python
Test

Módulo os

Python
Puzzle

Listas

Python
Test

Conjuntos

Python
Puzzle

Funciones lambda

Python
Test

Tuplas

Python
Puzzle

Módulo json

Python
Puzzle

Ejercicio proyecto de Python con Pandas - Análisis de datos

Python
Proyecto

Operadores

Python
Código

Variables

Python
Puzzle

Tipos de datos

Python
Puzzle

Diccionarios en Python

Python
Código

Conjuntos

Python
Test

Módulo math

Python
Puzzle

Excepciones

Python
Test

Módulo csv

Python
Test

Importar módulos y paquetes

Python
Puzzle

Funciones Python

Python
Puzzle

Módulo json

Python
Test

Tipos de datos

Python
Código

Módulo datetime

Python
Test

Herencia

Python
Test

Funciones

Python
Test

Funciones Python

Python
Código

Variables

Python
Test

Módulo csv

Python
Puzzle

Introducción a Python

Python
Test

Polimorfismo

Python
Test

Módulo os

Python
Test

Todas las lecciones de Python

Accede a todas las lecciones de Python y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.

Certificados de superación de Python

Supera todos los ejercicios de programación del curso de Python y obtén certificados de superación para mejorar tu currículum y tu empleabilidad.

En esta lección

Objetivos de aprendizaje de esta lección

  1. Comprender qué es el formato CSV y su utilidad para almacenar y compartir datos tabulares.
  2. Aprender a utilizar el módulo csv de Python para leer y escribir archivos CSV.
  3. Conocer los diferentes métodos proporcionados por el módulo csv, como reader(), writer(), DictReader() y DictWriter().
  4. Entender cómo personalizar delimitadores y citas en archivos CSV utilizando los parámetros delimiter y quotechar.
  5. Familiarizarse con la lectura de archivos CSV en forma de listas y diccionarios, y la escritura de datos desde listas y diccionarios a archivos CSV.