Skip to main content

Documentación del Módulo CSV de Python

El módulo csv en Python proporciona funciones para leer y escribir datos en formato CSV (Comma-Separated Values). El formato CSV es ampliamente utilizado para representar datos tabulares, donde cada línea del archivo representa una fila y los campos de datos están separados por comas u otro delimitador.

1. Lectura de Archivos CSV

El módulo csv proporciona la clase csv.reader que facilita la lectura de datos desde archivos CSV. Aquí hay un ejemplo básico:

import csv

# Abrir un archivo CSV en modo lectura
with open('archivo.csv', newline='') as archivo_csv:
lector_csv = csv.reader(archivo_csv)

# Iterar sobre las filas del archivo
for fila in lector_csv:
print(fila)

Opciones de la Función csv.reader

  • delimiter (opcional): Especifica el carácter delimitador utilizado en el archivo CSV. El valor predeterminado es la coma ,, pero puede cambiarse según la necesidad.

    lector_csv = csv.reader(archivo_csv, delimiter='\t')  # Utiliza el tabulador como delimitador
  • quotechar (opcional): Especifica el carácter utilizado para citar campos que contienen caracteres especiales. El valor predeterminado es la comilla doble ".

    lector_csv = csv.reader(archivo_csv, quotechar="'")  # Utiliza la comilla simple como carácter de cita

2. Escritura de Archivos CSV

El módulo csv también proporciona la clase csv.writer para escribir datos en un archivo CSV. Aquí hay un ejemplo básico:

import csv

# Abrir un archivo CSV en modo escritura
with open('nuevo_archivo.csv', 'w', newline='') as archivo_csv:
escritor_csv = csv.writer(archivo_csv)

# Escribir filas en el archivo
escritor_csv.writerow(['Nombre', 'Edad', 'Ciudad'])
escritor_csv.writerow(['Juan', 25, 'Ciudad A'])
escritor_csv.writerow(['María', 30, 'Ciudad B'])

Opciones de la Función csv.writer

  • delimiter (opcional): Especifica el carácter delimitador a utilizar en el archivo CSV. El valor predeterminado es la coma ,, pero puede cambiarse según la necesidad.

    escritor_csv = csv.writer(archivo_csv, delimiter='\t')  # Utiliza el tabulador como delimitador
  • quotechar (opcional): Especifica el carácter utilizado para citar campos que contienen caracteres especiales. El valor predeterminado es la comilla doble ".

    escritor_csv = csv.writer(archivo_csv, quotechar="'")  # Utiliza la comilla simple como carácter de cita

3. DictReader y DictWriter

Además de csv.reader y csv.writer, el módulo csv proporciona csv.DictReader y csv.DictWriter, que permiten trabajar con diccionarios en lugar de listas. Cada fila se representa como un diccionario, donde las claves son los encabezados y los valores son los datos de la fila.

DictReader:

import csv

# Abrir un archivo CSV en modo lectura
with open('archivo.csv', newline='') as archivo_csv:
lector_dict = csv.DictReader(archivo_csv)

# Iterar sobre las filas del archivo como diccionarios
for fila in lector_dict:
print(fila)

DictWriter:

import csv

# Abrir un archivo CSV en modo escritura
with open('nuevo_archivo.csv', 'w', newline='') as archivo_csv:
encabezados = ['Nombre', 'Edad', 'Ciudad']
escritor_dict = csv.DictWriter(archivo_csv, fieldnames=encabezados)

# Escribir encabezados en el archivo
escritor_dict.writeheader()

# Escribir filas en el archivo
escritor_dict.writerow({'Nombre': 'Juan', 'Edad': 25, 'Ciudad': 'Ciudad A'})
escritor_dict.writerow({'Nombre': 'María', 'Edad': 30, 'Ciudad': 'Ciudad B'})

4. Operaciones Adicionales

a. Leer Todas las Filas en una Lista:

import csv

# Abrir un archivo CSV en modo lectura
with open('archivo.csv', newline='') as archivo_csv:
filas = list(csv.reader(archivo_csv))
print(filas)

b. Escribir Todas las Filas desde una Lista:

import csv

datos = [['Nombre', 'Edad', 'Ciudad'],
['Juan', 25, 'Ciudad A'],
['María', 30, 'Ciudad B']]

# Abrir un archivo CSV en modo escritura
with open('nuevo_archivo.csv', 'w', newline='') as archivo_csv:
escritor = csv.writer(archivo_csv)
escritor.writerows(datos)

c. Manejo de Excepciones:

Es importante manejar excepciones al trabajar con archivos CSV para evitar problemas como archivos no encontrados o malformados.

import csv

try:
with open('archivo.csv', newline='') as archivo_csv:
lector_csv = csv.reader(archivo_csv)
for fila in lector_csv:
print(fila)
except FileNotFoundError:
print("El archivo no se encuentra.")
except csv.Error as e:
print(f"Error en el archivo CSV: {e}")

Conclusión

El módulo csv de Python proporciona herramientas poderosas y flexibles para trabajar con archivos CSV. Ya sea leyendo o escribiendo datos, las clases csv.reader, csv.writer, csv.DictReader, y csv.DictWriter ofrecen una gran versatilidad para manipular información tabular en formato CSV.