---
name: safe_read_csv_fallback
kind: function
lang: py
domain: core
version: "1.0.0"
purity: impure
signature: "safe_read_csv_fallback(path: str | Path) -> pd.DataFrame"
description: "Lee un CSV intentando utf-8 primero; si falla con UnicodeDecodeError reintenta con latin-1. Cubre exportaciones legacy de Excel y herramientas occidentales."
tags: [csv, encoding, pandas, io, core, pendiente-usar]
uses_functions: []
uses_types: []
returns: []
returns_optional: false
error_type: "error_go_core"
imports: [pandas, pathlib]
params:
  - name: path
    desc: "Ruta al archivo CSV a leer. Puede ser str o Path."
output: "DataFrame de pandas con el contenido del CSV. Codificación detectada automáticamente (utf-8 o latin-1)."
tested: true
tests:
  - "lee csv utf-8 correctamente"
  - "lee csv latin-1 con fallback"
test_file_path: "python/functions/core/tests/test_safe_read_csv_fallback.py"
file_path: "python/functions/core/safe_read_csv_fallback.py"
source_repo: "internal:footprint_aurgi"
source_license: "internal-aurgi"
source_file: "ponderacion_isochronas/example/models/eda/utils.py"
---

## Ejemplo

```python
df = safe_read_csv_fallback("datos_clientes.csv")
print(df.shape)
```

## Notas

Solo hace fallback en UnicodeDecodeError. Otros errores (archivo inexistente,
CSV malformado) se propagan normalmente.
latin-1 cubre la mayoría de exportaciones de Excel en español/europeo occidental.
