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.
Descripción general
CSV (valores separados por comas) es un formato de archivo omnipresente para almacenar conjuntos de datos tabulares. Ya sea importando bases de datos, exportando hojas de cálculo o descargando registros, la lectura de CSV es una habilidad fundamental. Python incluye un módulo `csv` dedicado y altamente optimizado para analizar archivos CSV fácilmente sin necesidad de bibliotecas de terceros como pandas.
La función `csv.reader` lee un archivo línea por línea y lo analiza, dividiendo cada fila por el delimitador de coma y devolviendo listas de cadenas. Si su archivo CSV tiene una fila de encabezado (por ejemplo, etiquetas de columna), a menudo se prefiere usar `csv.DictReader`. Analiza automáticamente cada fila en un diccionario donde las claves son las etiquetas de las columnas, lo que hace que el código sea mucho más legible y resistente a los cambios en el orden de las columnas.
Al abrir archivos CSV, se recomienda establecer `newline=""` en la declaración `open()`. Esto evita que Python realice traducciones automáticas de nuevas líneas, lo que puede provocar errores de análisis en ciertos sistemas operativos. Además, especifique siempre `encoding="utf-8"` para manejar caracteres especiales.
Código y salida de ejecución
Este script demuestra cómo escribir un archivo CSV de muestra y leerlo usando csv.reader y csv.DictReader.
import csv
# Writing a sample CSV file
sample_content = [
["name", "role", "salary"],
["Alice", "Developer", "90000"],
["Bob", "Manager", "110000"]
]
with open("employees.csv", "w", newline="", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(sample_content)
# 1. Reading CSV using csv.reader (List representation)
print("--- Using csv.reader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
reader = csv.reader(file)
header = next(reader) # Skip header row
print("Header:", header)
for row in reader:
print(f"Employee: {row[0]} | Role: {row[1]}")
# 2. Reading CSV using csv.DictReader (Dictionary representation)
print("\n--- Using csv.DictReader ---")
with open("employees.csv", "r", newline="", encoding="utf-8") as file:
dict_reader = csv.DictReader(file)
for row in dict_reader:
print(f"Name: {row['name']} | Role: {row['role']} | Salary: {row['salary']}")--- Using csv.reader ---
Header: ['name', 'role', 'salary']
Employee: Alice | Role: Developer
Employee: Bob | Role: Manager
--- Using csv.DictReader ---
Name: Alice | Role: Developer | Salary: 90000
Name: Bob | Role: Manager | Salary: 110000Implementación paso a paso
- Importe el módulo csv integrado en su secuencia de comandos.
- Abra el archivo CSV usando open("employees.csv", "r", newline="", encoding="utf-8") como archivo.
- Pase el objeto de archivo a csv.reader(file) para analizar las filas del archivo como listas de cadenas.
- Utilice csv.DictReader(file) para analizar filas como asignaciones de diccionario correspondientes a encabezados de columna.
Preguntas frecuentes
¿Por qué debería establecer newline="" al abrir un archivo CSV?
Configurar newline="" evita que Python modifique dinámicamente los caracteres de fin de línea, lo que garantiza que el módulo csv pueda analizar las nuevas líneas de estilo csv correctamente en diferentes sistemas operativos.
¿Cómo analizo un archivo CSV que usa tabulaciones o punto y coma en lugar de comas?
Puede pasar un delimitador personalizado a la función de lector: csv.reader(file, delimiter="\t") o csv.reader(file, delimiter=";").
Temas relacionados
Aprenda a leer archivos en Python. Domine la declaración abierta, la línea de lectura, las líneas de lectura y el manejo seguro de excepciones de archivos.
Cómo escribir en un archivo en PythonAprenda a escribir texto en archivos en Python. Domine la diferencia entre los modos de escritura ("w") y anexar ("a") con administradores de contexto seguros.
Recursos recomendados de Python
Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.
E/S de archivos Python
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.
Hoja de referencia de operaciones de archivos de Python
Referencia rápida para leer y escribir archivos en Python. Domina los modos abiertos, los administradores de contexto y la lectura línea por línea.
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.