Python CSV: lectura y escritura de hojas de cálculo
Aprenda a manejar datos CSV en Python. Domine csv.reader, csv.writer y DictReader/DictWriter para un análisis eficiente de tablas.
Descripción general
CSV (valores separados por comas) es un formato omnipresente para exportar e importar datos desde hojas de cálculo y bases de datos relacionales. Dado que los archivos CSV son archivos de texto simples, cuentan con el respaldo universal de herramientas analíticas, plataformas de bases de datos y lenguajes de programación. Python presenta un módulo `csv` incorporado optimizado específicamente para analizar, escribir y manipular datos tabulares sin necesidad de bibliotecas de terceros como pandas.
El módulo csv proporciona dos interfaces principales: lectores/escritores basados en listas y lectores/escritores basados en diccionarios. `csv.reader()` y `csv.writer()` representan cada línea en el CSV como una lista de cadenas, lo cual es simple pero requiere hacer referencia a las columnas por su índice numérico. Para un enfoque más sólido, los desarrolladores utilizan `csv.DictReader()` y `csv.DictWriter()`. Estas clases asignan cada fila a un diccionario utilizando la fila del encabezado CSV como clave, lo que produce un código altamente legible que no se rompe si se reordenan las columnas.
Cuando se trata de archivos CSV, los detalles de sintaxis son importantes. Los diferentes programas utilizan distintos delimitadores (como tabulaciones o punto y coma) y manejan las comillas o los finales de línea de distintas maneras. El módulo `csv` le permite definir delimitadores personalizados, reglas de citación y caracteres de escape mediante un parámetro 'dialecto'. Además, al abrir archivos CSV en Python, es un requisito fundamental pasar `newline=''` a la función `open()` para evitar problemas de líneas en blanco en diferentes sistemas operativos.
Código y salida de ejecución
Escribir datos en un archivo CSV usando DictWriter y leerlos nuevamente con DictReader.
import csv
filename = "employees.csv"
fieldnames = ["id", "name", "department"]
data = [
{"id": "101", "name": "Bob", "department": "HR"},
{"id": "102", "name": "Alice", "department": "Engineering"}
]
# Write dict data to CSV
with open(filename, "w", newline="") as csvfile:
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV written successfully.\n--- Reading CSV ---")
# Read CSV data back as dictionaries
with open(filename, "r", newline="") as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(f"Employee {row['name']} works in {row['department']}.")CSV written successfully.
--- Reading CSV ---
Employee Bob works in HR.
Employee Alice works in Engineering.Implementación paso a paso
- Exportación de registros de hojas de cálculo para análisis financiero
- Importación de catálogos de listas de contactos a bases de datos
- Formatear resultados estadísticos de scripts computacionales
Preguntas frecuentes
¿Por qué necesito especificar newline="" al abrir un archivo CSV?
Esto lo requiere el escritor interno del módulo csv para evitar que se inserten líneas en blanco adicionales, particularmente en plataformas Windows.
¿Cómo puedo analizar un archivo CSV que usa tabulaciones en lugar de comas?
Puede pasar el parámetro delimitador al lector o escritor, por ejemplo, csv.reader(archivo, delimitador='\t').
Temas relacionados
Aprenda a leer y escribir archivos en Python. Domine los administradores de contexto open(), read(), write() y contexto para manejar operaciones de archivos de forma segura sin fugas de recursos.
Análisis de Python JSONAprenda a leer, escribir y analizar datos JSON en Python. Domine json.loads, json.dumps y personalice codificadores/decodificadores JSON.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
Cómo leer y analizar un archivo CSV en Python
Aprenda a leer y analizar archivos CSV en Python utilizando el módulo csv integrado. Domine la lectura como listas, lectores de diccionarios y delimitadores personalizados.
Hoja de trucos sobre métodos de cadenas de Python
Una guía de referencia completa para la manipulación de cadenas de Python. Domine el formateo, la búsqueda, la división, el reemplazo y la verificación de las propiedades de las cadenas.
Python vs JavaScript: ¿Qué lenguaje de programación es mejor?
Una comparación completa entre Python y JavaScript. Explore las diferencias de sintaxis, el rendimiento, los casos de uso (backend frente a frontend) y ejemplos de codificación.