Resolver OSError: [Errno 2] No existe tal archivo o directorio en Python

Fariba Laiq 21 junio 2023
  1. el OSError: [Errno 2] No existe tal archivo o directorio en Python
  2. Resuelva el OSError: [Errno 2] No existe tal archivo o directorio en Python
Resolver OSError: [Errno 2] No existe tal archivo o directorio en Python

Cuando ejecutamos un programa en Python, a menudo enfrentamos errores. Este artículo discutirá el OSError: [Errno 2] No such file or directory en Python.

el OSError: [Errno 2] No existe tal archivo o directorio en Python

Este OSError: [Errno 2] No such file or directory es generado por la biblioteca del sistema operativo. Este error ocurre cuando el archivo o directorio al que intentamos acceder no está disponible.

Ocurre debido a dos razones importantes. O el archivo o carpeta que intentamos abrir no existe, o estamos ingresando la ruta incorrecta de ese archivo o carpeta.

Python genera este error para informar al usuario que no puede ejecutar más el programa sin acceder al archivo al que se hace referencia en el programa. En la versión 3 de Python, obtenemos el FileNotFoundError: [Errno 2] No such file or directory.

Este error es una subclase de OSError, y ejecutamos este código en el sistema operativo Ubuntu.

Código de ejemplo:

# Python 3.x
import os
import sys

os.chdir(os.path.dirname(sys.argv[0]))

Obtenemos el siguiente resultado cuando ejecutamos el script usando python mycode.py.

Producción :

#Python 3.x
Traceback (most recent call last):
  File "mycode.py", line 3, in <module>
    os.chdir(os.path.dirname(sys.argv[0]))
FileNotFoundError: [Errno 2] No such file or directory: ''

Resuelva el OSError: [Errno 2] No existe tal archivo o directorio en Python

Cuando no especificamos una ruta, sys.argv[0] accede a mycode.py y os.path.dirname no puede determinar la ruta. Podemos ejecutar el siguiente script para solucionar el error usando el comando python ./mycode.py.

# Python 3.x
import os
import sys

os.chdir(os.path.dirname(sys.argv[0]))
print("Hello")

Producción :

#Python 3.x
Hello

Una forma alternativa de resolver este error es escribir el código anterior de la siguiente manera. Debido a que sys.argv[0] es solo un nombre de secuencia de comandos y no un directorio, por lo tanto, os.path.dirname() no devuelve nada.

Eso se convierte en una ruta absoluta correcta con el nombre del directorio usando os.path.abspath(). Ejecutamos el siguiente código usando el comando python mycode.py.

# Python 3.x
import os
import sys

os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
print("Hello")

Producción :

#Python 3.x
Hello
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Artículo relacionado - Python Error