• Saltar al contenido principal
  • Skip to secondary menu
  • Saltar a la barra lateral principal
  • Saltar al pie de página
  • Inicio
  • Secciones
    • Ciencia de datos
    • Criptografía
    • Herramientas
    • Machine Learning
    • Noticias
    • Opinión
    • Productividad
    • Programación
      • JavaScript
      • Julia
      • Matlab
      • Python
      • R
  • Programación
    • JavaScript
    • Julia
    • Matlab
    • Python
    • R
  • Laboratorio
    • Estadística
      • Calculadora del Tamaño Muestral en Encuestas
      • Calculadora de estadísticos descriptivos
      • Test de normalidad
      • Calculadora de contrastes de hipotesis
      • Calculadora de tamano del efecto
      • Simulador de Regresión Lineal con Ruido
      • Visualizador de PCA
      • Visualizador de Series Temporales
      • Simulador de Regresión Logística
      • Simulador de K-Means
      • Simulador de DBSCAN
      • Detector de la Ley de Benford
    • Probabilidad
      • Calculadora de Probabilidad de Distribuciones
      • Calculadora de Probabilidades de Lotería
      • Simulador del Problema de Monty Hall
      • Simulador de la Estrategia Martingala
    • Finanzas
      • Calculadora de Préstamos e Hipotecas
      • Conversor TIN ↔ TAE
      • Calculadora DCA con ajuste por inflación
      • Simulador FIRE (Financial Independence, Retire Early)
    • Herramientas
      • Formateador / Minificador de JSON
      • Comparador y Formateador de Texto y JSON
      • Formateador y Tester de Expresiones Regulares
      • Inspector de JWT
      • Generador y verificador de hashes
      • Codificador / Decodificador Base64 y URL
      • Conversor de bases numericas
      • Conversor de Timestamp Unix
      • Conversor de colores
      • Generador de UUIDs
    • Juegos
      • Tres en Raya
      • Nim con Q-Learning
    • Más
      • Método D’Hondt
      • Generador de Contraseñas Seguras
  • Noticias
  • Boletín
  • Contacto
  • Tienda
    • Libros
    • Equipamiento de oficina
    • Equipamiento en movilidad

Analytics Lane

Ciencia e ingeniería de datos aplicada

  • Ciencia de datos
  • Machine Learning
  • IA Generativa
  • Python
  • Pandas
  • NumPy
  • R
  • Excel

FileNotFoundError en Python: Guía para abrir archivos correctamente en Python

febrero 10, 2025 Por Daniel Rodríguez Deja un comentario
Tiempo de lectura: 4 minutos

El error FileNotFoundError en Python es uno de los problemas más comunes al trabajar con archivos. Este error ocurre cuando intentamos abrir un archivo que no existe o especificamos una ruta incorrecta. Aunque se trata de un problema frecuente, casi siempre tiene una solución sencilla si aplicamos buenas prácticas en la gestión de archivos.

En esta entrada, explicaremos cómo identificar, resolver y prevenir este error con ejemplos prácticos y funciones útiles que mejorarán el manejo de archivos en Python.

Tabla de contenidos

  • 1 ¿Qué es el error FileNotFoundError?
  • 2 Causas más comunes del error FileNotFoundError en Python
  • 3 Cómo resolver el error FileNotFoundError
    • 3.1 Comprueba el directorio de trabajo actual
    • 3.2 Maneja las excepciones con try-except
    • 3.3 Crea una función para verificar rutas y permisos
  • 4 Conclusiones

¿Qué es el error FileNotFoundError?

El error FileNotFoundError se produce cuando Python no puede encontrar el archivo que intentas abrir con la función open(). Generalmente, esto ocurre si el archivo no existe en la ruta especificada o si la ruta está mal indicada. Sin embargo, también puede deberse a la falta de permisos o al uso incorrecto de rutas relativas.

Por ejemplo, el siguiente código generará este error si el archivo archivo_inexistente.txt no está en la ruta actual:

with open("archivo_inexistente.txt", "r") as archivo:
    contenido = archivo.read()

Esto producirá un mensaje de error similar a este:

FileNotFoundError                         Traceback (most recent call last)
Cell In[12], line 1
----> 1 with open("archivo_inexistente.txt", "r") as archivo:
2 contenido = archivo.read()

Causas más comunes del error FileNotFoundError en Python

Las razones más frecuentes por las que se produce este error en Python son:

Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
En Analytics Lane
Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane

  1. Ruta incorrecta: La ruta proporcionada no corresponde a ningún archivo en el sistema.
  2. Archivo inexistente: El archivo que intentas abrir no está en el directorio especificado.
  3. Problemas de permisos: No tienes permisos suficientes para acceder al archivo.
  4. Uso incorrecto de rutas relativas: Las rutas relativas pueden generar confusión si el directorio de trabajo actual no es el esperado.

Publicidad


Cómo resolver el error FileNotFoundError

A continuación, mostramos una serie de pasos prácticos para identificar la causa que produce este error y cómo solucionarlo de manera eficiente.

Comprueba el directorio de trabajo actual

Si estás utilizando rutas relativas, es esencial conocer en qué directorio se está ejecutando tu script. Puedes verificarlo con la función os.getcwd():

import os

print("Directorio de trabajo actual:", os.getcwd())

Si el archivo no está en el directorio actual, puedes cambiarlo con os.chdir() o utilizar rutas absolutas.

Maneja las excepciones con try-except

Si el nombre del archivo lo indica un usuario o si el archivo puede moverse o eliminarse, una buena práctica es usar bloques try-except para manejar este error y evitar que el programa se interrumpa. Así, si hay un problema con el archivo el programa no se interrumpirá como en el siguiente ejemplo:

try:
    with open("mi_archivo.txt", "r") as archivo:
        contenido = archivo.read()
except FileNotFoundError:
    print("El archivo no fue encontrado. Verifica la ruta o su existencia.")

Lo que produce una salida como la siguiente si el archivo no existe:

El archivo no fue encontrado. Verifica la ruta o su existencia.

Publicidad


Crea una función para verificar rutas y permisos

Para manejar archivos de manera segura, puedes crear una función que verifique si el archivo existe, si la ruta es válida y si tienes permisos de lectura. Esto es especialmente útil en programas que necesitan acceder a archivos de manera dinámica, como aplicaciones que procesan datos de usuario o scripts automatizados que dependen de archivos de configuración o registros. De este modo, podemos prevenir errores y garantizar que nuestro programa maneje adecuadamente la ausencia de archivos o la falta de permisos. Facilitando de esta manera el manejo de archivos en las aplicaciones para que estas sean más robustas. Esta función hará tu código más seguro y reutilizable:

import os

def verificar_archivo(ruta):
    """Verifica si un archivo existe, es accesible y tiene permisos.
    Retorna una tupla (True, None) si el archivo es válido.
    En caso de error, retorna (False, código de error)."""
    if not os.path.exists(ruta):
        return (False, 1)  # Código de error 1: El archivo no existe
    if not os.path.isfile(ruta):
        return (False, 2)  # Código de error 2: La ruta corresponde a un directorio
    if not os.access(ruta, os.R_OK):
        return (False, 3)  # Código de error 3: No hay permisos de lectura
    return (True, None)  # Archivo válido

Donde la función realiza las siguientes comprobaciones:

  1. os.path.exists(ruta): Verifica si la ruta existe en el sistema.
  2. os.path.isfile(ruta): Confirma que la ruta sea un archivo, no un directorio.
  3. os.access(ruta, os.R_OK): Verifica si tienes permisos de lectura para el archivo.

Esta función ayuda a prevenir errores antes de intentar abrir un archivo, permitiendo que tu código maneje mejor los posibles problemas de acceso a archivos. Al devolver dos valores, el primero indica si el archivo existe y se puede acceder y el segundo es un código para identidad la causa del problema. El uso de la función es bastante sencillo, tal como se puede ver en el siguiente ejemplo:

ruta = "mi_archivo.txt"

es_valido, error = verificar_archivo(ruta)
if es_valido:
    print("El archivo es accesible y válido.")
else:
    print(f"Error en el archivo. Código de error: {error}")

Con lo que se obtiene el siguiente resultado cuando el archivo no existe:

Error en el archivo. Código de error: 1

Conclusiones

El error FileNotFoundError en Python es fácil de solucionar si seguimos buenas prácticas como:

  • Verificar las rutas antes de intentar abrir un archivo.
  • Utilizar try-except para manejar excepciones adecuadamente.
  • Crear funciones personalizadas para comprobar la existencia de archivos y permisos.

Siguiendo estos consejos, podrás trabajar con archivos en Python de manera segura y eficiente, evitando este error común en tu día a día.

Nota: La imagen de este artículo fue generada utilizando un modelo de inteligencia artificial.

¿Te ha parecido de utilidad el contenido?

¡Puntúalo entre una y cinco estrellas!

Puntuación promedio 0 / 5. Votos emitidos: 0

Ya que has encontrado útil este contenido...

¡Síguenos en redes sociales!

¡Siento que este contenido no te haya sido útil!

¡Déjame mejorar este contenido!

Dime, ¿cómo puedo mejorar este contenido?

Publicaciones relacionadas

  • Nuevo simulador FIRE en el laboratorio de aplicaciones de Analytics Lane
  • Nueva calculadora de préstamos e hipotecas en el laboratorio de aplicaciones de Analytics Lane
  • Hardening avanzado de NGINX: CSP, OCSP Stapling y defensa en profundidad
  • Nuevo generador y verificador de hashes en el laboratorio de aplicaciones de Analytics Lane
  • Nueva simulación de la estrategia Martingala en ruleta en el laboratorio de aplicaciones de Analytics Lane
  • Exactitud, precisión, recall… y los errores que cometemos al interpretarlas en proyectos reales
  • Nuevo simulador del problema de Monty Hall en el laboratorio de aplicaciones de Analytics Lane
  • Nuevo simulador interactivo de K-Means en el laboratorio de aplicaciones de Analytics Lane
  • Por qué los chatbots de inteligencia artificial parecen estar siempre de acuerdo contigo – Conversar con una inteligencia artificial – Parte I

Publicado en: Python

Interacciones con los lectores

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

I accept the Terms and Conditions and the Privacy Policy

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Barra lateral principal

Suscríbete a nuestro boletín

Suscríbete al boletín semanal para estar al día de todas las publicaciones.

Política de Privacidad

Analytics Lane en redes sociales

  • Amazon
  • Bluesky
  • Facebook
  • GitHub
  • Instagram
  • Mastodon
  • Pinterest
  • RSS
  • Telegram
  • Tumblr
  • Twitter
  • YouTube

Publicidad

Entradas recientes

Nueva herramienta: Comparador y Formateador de Texto y JSON en el laboratorio de Analytics Lane

abril 21, 2026 Por Daniel Rodríguez

Chatbots vs redes sociales: la diferencia clave entre la inteligencia artificial y los algoritmos de recomendación – Conversar con una inteligencia artificial – Parte II

abril 21, 2026 Por Daniel Rodríguez

Nueva Calculadora de Estadísticos Descriptivos en el laboratorio de aplicaciones de Analytics Lane

abril 20, 2026 Por Daniel Rodríguez

Publicidad

Es tendencia

  • Buscar en Excel con dos o más criterios publicado el septiembre 7, 2022 | en Herramientas
  • Gráfica con los datos y las anomalías detectadas con OneClass SVM One-Class SVM: Detección de anomalías con máquinas de vector soporte publicado el marzo 15, 2024 | en Ciencia de datos
  • Nueva herramienta: Comparador y Formateador de Texto y JSON en el laboratorio de Analytics Lane publicado el abril 21, 2026 | en Noticias
  • Método del codo (Elbow method) para seleccionar el número óptimo de clústeres en K-means publicado el junio 9, 2023 | en Ciencia de datos
  • Cómo desinstalar Oracle Database 19c en Windows publicado el noviembre 25, 2022 | en Herramientas

Publicidad

Lo mejor valorado

4.9 (24)

Seleccionar filas y columnas en Pandas con iloc y loc

4.6 (16)

Archivos JSON con Python: lectura y escritura

4.4 (14)

Ordenación de diccionarios en Python mediante clave o valor

4.7 (13)

Operaciones de filtrado de DataFrame con Pandas en base a los valores de las columnas

4.9 (11)

Pandas: Cambiar los tipos de datos en los DataFrames

Comentarios recientes

  • M. Pilar en Cómo eliminar las noticias en Windows 11 y recuperar tu concentración
  • Daniel Rodríguez en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • Pepe en Probabilidad básica: cómo entender el azar en nuestra vida diaria
  • CARLOS ARETURO BELLO CACERES en Justicio: La herramienta gratuita de IA para consultas legales
  • Piera en Ecuaciones multilínea en Markdown

Publicidad


Footer

Analytics Lane

  • Acerca de Analytics Lane
  • Boletín de noticias
  • Contacto
  • Libros
  • Lo más popular
  • Noticias
  • Tienda
  • Tiendas afiliadas

Secciones

  • Ciencia de datos
  • Criptografía
  • Herramientas
  • Machine Learning
  • Opinión
  • Productividad
  • Programación
  • Reseñas

Sobre de Analytics Lane

En Analytics Lane tratamos de explicar los principales conceptos de la ciencia e ingeniería de datos con un enfoque práctico. Los principales temas tratados son ciencia de datos, ingeniería de datos, inteligencia artificial, machine learning, deep learning y criptografía. Además, también se habla de los principales lenguajes de programación y herramientas utilizadas por los científicos e ingenieros de datos.

Copyright © 2018-2026 Analytics Lane ·Términos y condiciones ·Política de Cookies ·Política de Privacidad ·Herramientas de privacidad ·Contacto