Entrada y salida de archivos en Python: lectura, escritura y seguridad

Domina operaciones de archivos con `with`, modos de apertura, codificación y manejo defensivo de errores para flujos reales.

Trabajar con archivos implica gestionar recursos del sistema: descriptor abierto, permisos, codificación y posibles fallos de E/S.

`with open(...)` es el patrón estándar porque garantiza cierre del recurso incluso cuando ocurre excepción.

Elegir modo correcto (`r`, `w`, `a`, `rb`, `wb`) evita sobrescrituras accidentales o lecturas inválidas.

La codificación (`encoding='utf-8'`) debe declararse explícitamente para evitar errores con acentos o caracteres especiales.

  • Abre cada archivo con el modo que corresponda al caso de uso real.
  • `r` lee (falla si no existe), `w` sobrescribe o crea, `a` agrega al final, `x` crea y falla si ya existe.
  • En binario (`rb`, `wb`) no hay decodificación textual; úsalo para imágenes, zip, pdf, etc.
  • En texto, especifica siempre UTF-8 para portabilidad entre sistemas.
  • Para archivos grandes, iterar por líneas evita cargar todo en memoria.

1) `open()` y modos de archivo

Abre cada archivo con el modo que corresponda al caso de uso real.

`r` lee (falla si no existe), `w` sobrescribe o crea, `a` agrega al final, `x` crea y falla si ya existe.

En binario (`rb`, `wb`) no hay decodificación textual; úsalo para imágenes, zip, pdf, etc.

En texto, especifica siempre UTF-8 para portabilidad entre sistemas.

2) Lectura eficiente y procesamiento por líneas

Para archivos grandes, iterar por líneas evita cargar todo en memoria.

`read()` trae todo el contenido; útil para ficheros pequeños y parseo completo.

Iterar `for linea in archivo` es más eficiente para logs o datasets extensos.

Aplica `strip()` al final de línea cuando quieras normalizar entradas.

3) Manejo de errores de E/S

Errores de archivo son normales: archivo ausente, permisos o rutas incorrectas.

Captura `FileNotFoundError` para rutas inexistentes y `PermissionError` para acceso denegado.

Evita silenciar excepciones: registra contexto útil para depuración.

Para scripts CLI, muestra feedback claro; para backend, convierte error en respuesta controlada.

  • Usa `with` siempre que puedas.
  • Declara codificación explícita.
  • No asumas existencia de rutas.
  • Separa lógica de I/O de lógica de negocio.
Python
12

Entrada y salida de archivos en Python: lectura, escritura y seguridad

Domina operaciones de archivos con `with`, modos de apertura, codificación y manejo defensivo de errores para flujos reales.

Código del tema: Automatizacion y codigo legible en Python

📘 Teoría

1) `open()` y modos de archivo

Abre cada archivo con el modo que corresponda al caso de uso real.

1

`r` lee (falla si no existe), `w` sobrescribe o crea, `a` agrega al final, `x` crea y falla si ya existe.

2

En binario (`rb`, `wb`) no hay decodificación textual; úsalo para imágenes, zip, pdf, etc.

3

En texto, especifica siempre UTF-8 para portabilidad entre sistemas.

2) Lectura eficiente y procesamiento por líneas

Para archivos grandes, iterar por líneas evita cargar todo en memoria.

`read()` trae todo el contenido; útil para ficheros pequeños y parseo completo.

Iterar `for linea in archivo` es más eficiente para logs o datasets extensos.

Aplica `strip()` al final de línea cuando quieras normalizar entradas.

1

Lectura completa

Para archivos de tamaño controlado.

2

Lectura por línea

Más adecuada para volumen alto.

3) Manejo de errores de E/S

Errores de archivo son normales: archivo ausente, permisos o rutas incorrectas.

Captura `FileNotFoundError` para rutas inexistentes y `PermissionError` para acceso denegado.

Evita silenciar excepciones: registra contexto útil para depuración.

Para scripts CLI, muestra feedback claro; para backend, convierte error en respuesta controlada.

  • Usa `with` siempre que puedas.
  • Declara codificación explícita.
  • No asumas existencia de rutas.
  • Separa lógica de I/O de lógica de negocio.

🧪 Aprende probando

Ejemplo Ejemplo: log incremental con modo append Añade líneas de auditoría sin borrar contenido previo.

🏁 Retos

Reto Reto: reemplaza apertura manual por context manager Refactoriza a `with open(...)` para cierre automático del archivo.

🧰 Recursos

Test

Comprueba tus conocimientos con un test sobre Python.

Test de Python

¿Qué es esto?

Soy Cristian Eslava y a veces hago webs para procrastinar yo y vosotros. culTest

La hice en febrero de 2026 para facilitar el aprendizaje de mis alumnos. La idea es aprender desarrollo web practicando y que el proyecto siga creciendo con nuevos temas, tests y retos.

Está inspirada en MDN, W3Schools, CodePen, Manz y muchos otros sitios de documentación sobre desarrollo web. Quería combinar teoría útil, ejemplos ejecutables, retos y el sistema de tests que ya tenía en culTest. culTest

Si te gustó, si no te gustó o si quieres escribirme, puedes hacerlo en cristianeslava@gmail.com