0Pricing
Python Academy · Lección

Lectura de CSV con csv.reader

Lea archivos CSV fila por fila y acceda a las columnas mediante índices.

Lectura de CSV con csv.reader es una lección gratuita de Python Academy en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Python Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Python Academy incluye 4 lecciones en total.

Introducción

El módulo csv de Python se encarga de las complejidades de los archivos CSV: campos entre comillas, delimitadores y distintos finales de línea.

Abrir un archivo CSV

with open('data.csv', newline='') as f: es la forma recomendada; newline='' permite que el módulo csv gestione los finales de línea.
import csv, io
sample = 'name,age,city\nAlice,30,NYC\nBob,25,LA'
reader = csv.reader(io.StringIO(sample))
for row in reader:
    print(row)

Conceptos básicos de csv.reader

csv.reader(f) devuelve un iterador de filas, donde cada fila es una lista de cadenas.
import csv, io
data = 'a,b,c\n1,2,3\n4,5,6'
for row in csv.reader(io.StringIO(data)):
    print(row)

Omitir la cabecera

next(reader) omite la fila de cabecera. También puede utilizar csv.DictReader para acceder a las columnas por nombre.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
reader = csv.reader(io.StringIO(data))
header = next(reader)  # skip
for row in reader:
    print(row)

Delimitador personalizado

csv.reader(f, delimiter=';') lee archivos separados por punto y coma. Funciona con cualquier delimitador de un solo carácter.
import csv, io
data = 'a;b;c\n1;2;3'
for row in csv.reader(io.StringIO(data), delimiter=';'):
    print(row)

Gestionar campos entre comillas

csv.reader gestiona automáticamente los campos entre comillas: 'Alice, Jr.' se mantiene como un solo campo.
import csv, io
data = 'name,note\n"Smith, John","great guy"'
for row in csv.reader(io.StringIO(data)):
    print(row)

csv.DictReader

DictReader convierte cada fila en un OrderedDict (o en un dict normal a partir de la versión 3.8), utilizando la fila de cabecera como claves.
import csv, io
data = 'name,age\nAlice,30\nBob,25'
for row in csv.DictReader(io.StringIO(data)):
    print(row['name'], row['age'])

Conversión de tipos

Los valores CSV siempre son cadenas. Conviértalos explícitamente: int(row['age']), float(row['price']).
import csv, io
data = 'item,price\napple,1.5\nbanana,0.75'
for row in csv.DictReader(io.StringIO(data)):
    print(row['item'], float(row['price'])*2)

Gestionar la codificación

open(file, encoding='utf-8-sig') gestiona el BOM de UTF-8, habitual en los archivos CSV generados por Excel.
# with open('data.csv', encoding='utf-8-sig', newline='') as f:
#     reader = csv.DictReader(f)
print('encoding demo')

Archivos CSV grandes

csv.reader es perezoso: lee una fila cada vez. No es necesario cargar todo el archivo en memoria.
import csv, io
data = '\n'.join(f'{i},{i*2}' for i in range(1000))
reader = csv.reader(io.StringIO(data))
print(sum(int(row[0]) for row in reader))

Detectar el dialecto

csv.Sniffer().sniff(sample) detecta automáticamente el delimitador y el estilo de entrecomillado.
import csv, io
data = 'a|b|c\n1|2|3'
sniff = csv.Sniffer().sniff(data[:100])
print('delimiter:', sniff.delimiter)
for row in csv.reader(io.StringIO(data), dialect=sniff):
    print(row)

Comprobación rápida

¿Qué parámetro debe establecer siempre al abrir un archivo CSV con open()?

Resumen

csv.reader: filas como listas de cadenas. DictReader: filas como diccionarios. Abra siempre con newline=''. Gestione la codificación de los archivos de Excel. Convierta los tipos explícitamente.

Continúe

¡Siga así! Pase a la lección siguiente.

Preguntas frecuentes

¿La lección «Lectura de CSV con csv.reader» es gratis?

Sí — el texto completo de «Lectura de CSV con csv.reader» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Python Academy, actualiza a CoddyKit PRO. El curso de Python Academy incluye 4 lecciones en total.

¿Qué aprenderé en «Lectura de CSV con csv.reader»?

Lea archivos CSV fila por fila y acceda a las columnas mediante índices. Practicas Python Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar Python Academy?

No se requiere experiencia previa. Python Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.

¿Cuánto tiempo toma la lección «Lectura de CSV con csv.reader»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de Python Academy?

Sí. Cada lección de Python Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Codificación y decodificación de JSON
  2. Gestión de estructuras JSON anidadas
  3. Lectura de CSV con csv.reader
  4. Escritura de CSV con csv.DictWriter
← Volver a Python Academy