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.