HOWTO · Python
Beheben Sie OSError: [Errno 2] No Such File or Directory in Python
Dieses Tutorial zeigt die Ursachen von OSError: Errno 2 No Such File or Directory in Python und die Möglichkeiten, es zu lösen.
Beim Ausführen eines Programms in Python treten häufig Fehler auf. Dieser Artikel behandelt den OSError: [Errno 2] No such file or directory in Python.
der OSError: [Errno 2] No Such File or Directory in Python
Dieser OSError: [Errno 2] No such file or directory wird von der OS-Bibliothek generiert. Dieser Fehler tritt auf, wenn die Datei oder das Verzeichnis, auf das wir zugreifen möchten, nicht verfügbar ist.
Dies geschieht aus zwei wesentlichen Gründen. Entweder existiert die Datei oder der Ordner, die wir zu öffnen versuchen, nicht, oder wir geben den falschen Pfad dieser Datei oder dieses Ordners ein.
Python löst diesen Fehler aus, um den Benutzer darüber zu informieren, dass es das Programm nicht weiter ausführen kann, ohne auf die Datei zuzugreifen, auf die im Programm verwiesen wird. In Python Version 3 erhalten wir den FileNotFoundError: [Errno 2] No such file or directory.
Dieser Fehler ist eine Unterklasse von OSError, und wir führen diesen Code auf Ubuntu OS aus.
Beispielcode:
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
Wir erhalten die folgende Ausgabe, wenn wir das Skript mit python mycode.py ausführen.
Ausgang:
#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: ''
Beheben Sie den OSError: [Errno 2] No Such File or Directory in Python
Wenn wir keinen Pfad angeben, greift sys.argv[0] auf mycode.py zu und os.path.dirname kann den Pfad nicht bestimmen. Wir können das folgende Skript ausführen, um den Fehler mit dem Befehl python ./mycode.py zu beheben.
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(sys.argv[0]))
print("Hello")
Ausgang:
#Python 3.x
Hello
Eine alternative Möglichkeit, diesen Fehler zu beheben, besteht darin, den obigen Code auf die folgende Weise zu schreiben. Da sys.argv[0] nur ein Skriptname und kein Verzeichnis ist, gibt os.path.dirname() nichts zurück.
Dieser wird mit os.path.abspath() in einen korrekten absoluten Pfad mit Verzeichnisnamen umgewandelt. Wir führen den folgenden Code mit dem Befehl python mycode.py aus.
# Python 3.x
import os
import sys
os.chdir(os.path.dirname(os.path.abspath(sys.argv[0])))
print("Hello")
Ausgang:
#Python 3.x
Hello