FileNotFoundError: [Errno 2] No such file or directory

El error  FileNotFoundError: [Errno 2] No such file or directory, es un error común que lanza la librería OS.

En esencia este error indica que estámos intentando acceder a un archivo o carpeta que no existe, ya sea porque no está presente en la ruta de archivo en particular o porque se ha cambiado su nombre.

Normalmente verá un IOError si intenta leer o escribir en un archivo que no existe usando una instrucción open () del tipo

f = open ('nombre de archivo.txt')

Para corregirlo lo primero es  comprobar de antemano, que se está refiriendo al archivo o carpeta correcto.

Un error común es que corramos

python script.py

Cuando deberíamos llamar a la ruta correcta de esta forma

python. / script.py

Ver otros errores en Python en mi blog

Otro error que puede darse es que nuestro archivo comience con la letra n, y se confunda con una secuencia de escape; podría pasar algo asi:

path_name = "C:\name.txt " 

En este caso Python considerará \n como una secuencia de escape y nunca encontrará el archivo name.txt

Capturar el error [Errno 2] No such file or directory

Podemos capturar el error para emplearlo a conveniencia. Veamos aca algunas variantes, donde si el archivo no es encontrado manejaremos un mensaje de salida

Os

import os

path_name = "filename.txt"

if os.path.isfile(path_name):
   print("File exists")
f = open(path_name)
#Ejecutar aquí otras operaciones
f.close()

else :
   print("El archivo no existe, se encontró un error tipo IOError ")

Pathlib

from pathlib
import Path
path_name = "filename.txt"
p = Path(path_name)
if p.is_file():
   print("File exists")
f = open(path_name)
#Ejecutar aquí otras operaciones
f.close()

else :
   print("El archivo no existe, se encontró un error tipo IOError ")

Try – Except primera variante

try:
f = open("filename.txt")
#Execute other operations
f.close()
except IOError as io:
   print(io)

Try – Except segunda variante

try:
f = open("filename.txt")
#Ejecutar aquí otras operaciones
f.close()
except IOError:
   print("El archivo no existe, se encontró un error tipo IOError ")

Y hasta aquí. Espero que este post ayude a alguien.

Muchas gracias

La ira no tiene alas y es tímida, la estupidez en cambio es desenvuelta y aventurera. Por  eso volcamos nuestra ira en los que nos quieren, y nos esforzamos por complacer , a los que no importamos nada.

Y

Translate »