Finden Sie mit Python den Pfad zur angegebenen Datei
Mit __file__ können wir den Speicherort (Pfad) der laufenden Skriptdatei .py ermitteln. __Datei__ ist nützlich zum Lesen anderer Dateien und gibt den aktuellen Speicherort der ausgeführten Datei an. Es unterscheidet sich in den Versionen. In Python 3.8 und früher gibt __file__ den beim Ausführen angegebenen Pfad zurück Python Befehl.
Wir können einen relativen Pfad erhalten, wenn ein relativer Pfad angegeben wird. Wenn wir einen absoluten Pfad angeben, wird ein absoluter Pfad zurückgegeben. Aber in Python 3.9 und höher gibt __file__ immer einen absoluten Pfad zurück, den OS-Modul stellt verschiedene Dienstprogramme bereit.
Möglichkeiten, das aktuelle Verzeichnis in Python mit dem Betriebssystem abzurufen
Es gibt viele Möglichkeiten, das aktuelle Verzeichnis in Python mit dem Betriebssystem abzurufen. Hier verwenden wir einige allgemein verwendete Methoden, um das aktuelle Verzeichnis in Python mit dem folgenden Betriebssystem abzurufen.
- Verwenden von Path.cwd()
- Benutzen os.getcwd()
- Verwenden von pathlib.Path().absolute()
- Verwenden von Betriebssystemen. path.basename
- Benutzen os.path.abspath
Finden Sie den Pfad zur angegebenen Datei mit Path.cwd()
Hier nimmt die Idee des Current Working Directory (CWD) einen wichtigen Platz ein. Denken Sie an die CWD als den Ordner, in dem Python ausgeführt wird. Python geht davon aus, dass die Datei im CWD beginnt, wenn sie einfach über den Namen aufgerufen wird. Daher funktioniert eine reine Namensreferenz nur, wenn sich die Datei im CWD von Python befindet. Path.cwd() gibt das aktuelle Verzeichnis zurück.
Python3
from> pathlib> import> Path> print> (Path.cwd())> |
Ausgabe:
C:Usersint.suraj.gupta
Holen Sie sich das aktuelle Verzeichnis in Python mit Betriebssystem mit os.getcwd()
Wir können den absoluten Pfad des aktuellen Arbeitsverzeichnisses ermitteln. Abhängig von der verwendeten Version wird also entweder ein relativer oder ein absoluter Pfad abgerufen. Um das aktuelle Arbeitsverzeichnis in Python zu erhalten, verwenden Sie os. getcwd () Methode. Diese Funktion des Python OS-Moduls gibt die Zeichenfolge zurück, die den absoluten Pfad zum aktuellen Arbeitsverzeichnis enthält.
Python3
import> os> print> (> 'Get current working directory : '> , os.getcwd())> |
Ausgabe:
Get current working directory : C:Usersint.suraj.gupta
Holen Sie sich das aktuelle Verzeichnis in Python mit Betriebssystem verwenden pathlib.Path().absolute()
Diese Funktion des Python OS-Modul gibt die Zeichenfolge zurück, die den absoluten Pfad zum aktuellen Arbeitsverzeichnis enthält.
Python3
import> pathlib> # current working directory> print> (pathlib.Path().absolute())> |
Ausgabe:
C:Usersint.suraj.gupta
Finden Sie den Pfad zur angegebenen Datei mit os.path.basename
Wir können den Dateinamen und den Verzeichnisnamen der laufenden Datei auf die folgende Weise ermitteln. Das Wichtigste, was man verstehen muss __Datei__ ist, dass der Interpreter es zur Laufzeit so anpasst, dass Python weiß, um welche Datei es sich handelt, wenn das Skript mehrere Module verwendet. Der Vorteil des Aufrufs von Path( file__) besteht darin, dass eine Zeichenfolge zurückgegeben wird, die den Pfad und die Datei enthält, an der Sie gerade arbeiten.
- Sie können __file__ aufrufen, während Sie eine Datei ändern. Wenn Sie daher versuchen, es über den Shell-Interpreter aufzurufen, wird es nicht ausgeführt.
- __file__ funktioniert nicht in a Jupyter-Notebooks Kontext.
Python3
import> os> print> (> 'File name : '> , os.path.basename(__file__))> print> (> 'Directory Name: '> , os.path.dirname(__file__))> |
Ausgabe:
Finden Sie den Pfad zur angegebenen Datei mit os.path.abspath
Es mag kompliziert klingen, aber os.path.abspath() bedeutet einfach, dass diese Methode den Pfadnamen zu dem Pfad zurückgibt, der als Argument für diese Funktion bereitgestellt wird. In der Dokumentation wird behauptet, dass diese Methode eine normalisierte, absolutisierte Version des Pfadnamens path erzeugt.
Beispiel 1: Um den absoluten Pfad der laufenden Datei zu erhalten.
Python3
import> os> print> (> 'Absolute path of file: '> ,> > os.path.abspath(__file__))> print> (> 'Absolute directoryname: '> ,> > os.path.dirname(os.path.abspath(__file__)))> |
Ausgabe:
Beispiel 2: Wenn wir in os.path.abspath() einen absoluten Pfad angeben, wird dieser unverändert zurückgegeben. Wenn also __file__ ein absoluter Pfad ist, Es tritt kein Fehler auf, selbst wenn wir os.path festlegen. Abspath (__Datei__)
Python3
import> os> pythonfile> => 'pathfinding.py'> # if the file is present in current directory,> # then no need to specify the whole location> print> (> 'Path of the file..'> , os.path.abspath(pythonfile))> for> root, dirs, files> in> os.walk(r> 'E:geeksforgeekspath_of_given_file'> ):> > for> name> in> files:> > > # As we need to get the provided python file,> > # comparing here like this> > if> name> => => pythonfile:> > print> (os.path.abspath(os.path.join(root, name)))> |
Ausgabe: