Puedes ejecutar cualquier ejemplo de esta guía directamente en nuestra consola interactiva: Abrir consola de Python →
CSV en Python: cómo leer, escribir y procesar archivos de datos
Los archivos CSV son uno de los formatos más utilizados para almacenar datos tabulares. Python incluye el módulo csv para trabajar con ellos de forma sencilla y eficiente.
Tabla de contenidos
1. ¿Qué es un archivo CSV?
CSV significa Comma Separated Values. Es un formato de texto donde cada línea representa una fila y los valores están separados por comas.
nombre,edad
Ana,22
Luis,30
Iokelu,25
2. Leer archivos CSV
import csv
with open("datos.csv", "r") as archivo:
lector = csv.reader(archivo)
for fila in lector:
print(fila)
Leer CSV con encabezados
import csv
with open("datos.csv", "r") as archivo:
lector = csv.DictReader(archivo)
for fila in lector:
print(fila["nombre"], fila["edad"])
3. Escribir archivos CSV
import csv
with open("salida.csv", "w", newline="") as archivo:
escritor = csv.writer(archivo)
escritor.writerow(["nombre", "edad"])
escritor.writerow(["Ana", 22])
escritor.writerow(["Luis", 30])
4. DictReader y DictWriter
import csv
usuarios = [
{"nombre": "Ana", "edad": 22},
{"nombre": "Luis", "edad": 30}
]
with open("usuarios.csv", "w", newline="") as archivo:
campos = ["nombre", "edad"]
escritor = csv.DictWriter(archivo, fieldnames=campos)
escritor.writeheader()
escritor.writerows(usuarios)
5. Ejercicios
- Leer un archivo CSV simple.
- Leer un CSV usando DictReader.
- Escribir un CSV con encabezados.
- Crear un CSV con una lista de diccionarios.
- Filtrar filas de un CSV.
csv.reader(open("archivo.csv"))
csv.DictReader(open("archivo.csv"))
csv.writer(open("salida.csv","w")).writerow(["a","b"])
csv.DictWriter(open("salida.csv","w"), fieldnames=["a","b"])
[fila for fila in csv.reader(open("archivo.csv")) if int(fila[1]) > 20]
6. Mini‑proyecto: Analizador de CSV
import csv
with open("usuarios.csv", "r") as archivo:
lector = csv.DictReader(archivo)
mayores = [u for u in lector if int(u["edad"]) > 25]
for u in mayores:
print(u["nombre"], u["edad"])
7. Preguntas frecuentes
¿CSV es lo mismo que Excel?
No, CSV es texto plano; Excel es un formato más complejo.
¿Puedo usar pandas para CSV?
Sí, pero el módulo csv es más ligero y rápido para tareas simples.