Lingua-e
← Errores
Python

Qué significa FileNotFoundError y cómo solucionarlo

Referencia del error

FileNotFoundError

Lenguaje

Python

Severidad

Media

Cuándo ocurre

Un FileNotFoundError se lanza en Python cuando el intérprete intenta abrir o acceder a un archivo que no existe en la ruta indicada.

Posibles soluciones

Usa pathlib.Path y verifica .exists() antes de abrir el archivo. Imprime o registra la ruta absoluta resuelta con Path.resolve() para confirmar que estás buscando en el lugar correcto. Al empaquetar scripts, usa __file__ para construir rutas relativas a la ubicación del propio script en lugar del directorio de trabajo actual.

Errores relacionados

Más detalles

Un FileNotFoundError se lanza en Python cuando el intérprete intenta abrir o acceder a un archivo que no existe en la ruta indicada. Es una subclase de OSError y es el error de sistema de archivos más común que encontrarás.

Por qué ocurre

  • La ruta del archivo es relativa y el directorio de trabajo no es el esperado cuando el script se ejecuta.
  • Un error tipográfico o separador de ruta incorrecto en la cadena de la ruta.
  • El archivo fue eliminado, movido o nunca se creó antes de que el script se ejecutara.
  • La ruta apunta a un directorio, no a un archivo.

Posibles soluciones

Usa pathlib.Path y verifica .exists() antes de abrir el archivo. Imprime o registra la ruta absoluta resuelta con Path.resolve() para confirmar que estás buscando en el lugar correcto. Al empaquetar scripts, usa __file__ para construir rutas relativas a la ubicación del propio script en lugar del directorio de trabajo actual.

Ejemplos

Python

Código que causa el error

with open("config.json") as f:
    data = f.read()

Error en la terminal

Traceback (most recent call last):
  File "app.py", line 1, in <module>
    with open("config.json") as f:
FileNotFoundError: [Errno 2] No such file or directory: 'config.json'

Código corregido

from pathlib import Path

config_path = Path("config.json")

if config_path.exists():
    with config_path.open() as f:
        data = f.read()
else:
    print("Config file not found, using defaults")
    data = "{}"

Practica en inglés

¿Cómo le explicarías un FileNotFoundError a un compañero dev? Elige la frase correcta:

"I hit an error...

¿Listo para practicar tu inglés en el trabajo?

Lingua-e tiene ejercicios interactivos basados en conversaciones reales de developers: standups, code reviews, retrospectivas y más. Practica hasta que salga solo.

Prueba Lingua-e gratis