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.