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
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