DÍA 17Archivos y proyecto final · Python desde cero

Usa csv.DictReader para procesar campos por nombre.

Día 17 16 minInicial

Gastos ficticios para el proyecto de Python

Archivo inventado, sin información personal y sin relación con Sakila.

Leer filas de un CSV

Objetivos

Al terminar podrás explicar el concepto principal y adaptar el ejemplo a un caso sencillo.

Concepto

CSV significa comma-separated values (valores separados por comas). El módulo estándar csv interpreta comillas y separadores; split(",") puede dividir incorrectamente una coma que forma parte de un campo entrecomillado. DictReader usa encabezados como claves y entrega textos. Abre con encoding="utf-8", newline=""; convierte los valores después de validarlos.

Ejemplo

import csv
from pathlib import Path
ruta = Path(__file__).parent / "gastos.csv"
with ruta.open(encoding="utf-8", newline="") as archivo:
    for fila in csv.DictReader(archivo):
        print(fila["categoria"], fila["monto"])

El bucle presenta la categoría y el monto de cada fila del archivo. with cierra el archivo al finalizar.

Práctica guiada

Crea un CSV con encabezados categoría y monto y léelo con DictReader.

Reto

Cuenta filas e informa el número de fila de cada registro.

Ver respuesta al reto
import csv
from pathlib import Path
 
ruta = Path(__file__).parent / "gastos.csv"
with ruta.open(encoding="utf-8", newline="") as archivo:
    for numero_fila, fila in enumerate(csv.DictReader(archivo), start=2):
        print(numero_fila, fila)

La fila 1 contiene los encabezados; los primeros datos empiezan en la fila 2.

Quiz

1. ¿Qué ventaja ofrece DictReader frente a separar por comas manualmente?
2. ¿Qué indica Path(__file__).parent?
3. ¿Qué debe hacer el programa ante un monto inválido?

Comprobación

Revisa que el ejemplo produzca el resultado esperado y prueba también un caso límite relacionado con la lección.

TU PROGRESO

Cargando estado…