Relativer Pfad in Python
In diesem Tutorial werden wir den relativen Pfad in Python diskutieren.
Dateipfad in Python
Ein Dateipfad gibt den Speicherort einer Datei auf dem Computer an. Beispiel: C:\PythonProjects\Tutorials\Paths
ist der Pfad einer Datei paths.py
auf meinem Windows-Computer. Hier ist C:\
das Stammverzeichnis, und PythonProjects
, Tutorials
und Paths
sind Unterverzeichnisse. paths.py
ist ein Python-Skript im Verzeichnis Paths
im Verzeichnis Tutorials
im Verzeichnis PythonProjects
im Stammverzeichnis C:\
. In Python gibt es zwei Arten von Dateipfaden, d. H. Absolute und relative Pfade.
Unterschied zwischen Windows, Mac und Linux
Auf Windows-Computern wird \
als Trennzeichen zwischen Verzeichnisnamen verwendet, während auf Linux- und Mac-Computern /
als Trennzeichen verwendet wird. Beispielsweise,
#file path in Windows
rootdirectory\\subdirectory\\subsubdirectory\\filename.extension
#file path in Mac and Linux
rootdirectory/subdirectory/subsubdirectory/filename.extension
In Windows gibt es zwei Backslashes, da jeder Backslash mit einem anderen Backslash maskiert werden muss. Dies kann mit der Methode os.path.join()
verwaltet werden. Diese Methode behandelt die Trennzeichen je nach Betriebssystem. Beispielsweise,
import os
pathname = os.path.join("root", "directory1", "directory2")
print(pathname)
Ausgabe:
#On Windows
root\directory1\directory2
#On Mac and Linux
root/directory1/directory2
Dieses Tutorial würde \
als Trennzeichen enthalten, um die Beispiele in Windows anzugeben. Wir werden die folgende Dateihierarchie verwenden und C:\PythonProjects\Tutorials\Paths
als aktuelles Arbeitsverzeichnis festlegen.
Aktuelles Arbeitsverzeichnis
Das aktuelle Arbeitsverzeichnis oder kurz cwd
ist das Verzeichnis, aus dem das Programm ausgeführt wird. Sie können das aktuelle Arbeitsverzeichnis der jeweiligen Datei mit der Methode os.getcwd()
abrufen.
import os
print(os.getcwd())
Ausgabe:
C:\PythonProjects\Tutorials\Paths
Das aktuelle Arbeitsverzeichnis kann auch zur Laufzeit mit der Methode os.chdir()
geändert werden.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials")
print("New cwd = " + os.getcwd())
Ausgabe:
Old cwd = C:\PythonProjects\Tutorials\Paths
New cwd = C:\PythonProjects\Tutorials
Absoluter Pfad
Ein absoluter Pfad einer Datei ist der vollständige Pfad vom Stammverzeichnis zu dieser bestimmten Datei. Beispiel: C:\PythonProjects\Tutorials\Paths\paths.py
ist der absolute Pfad der Datei paths.py
.
Wir können den absoluten Pfad der aktuellen Datei wie unten gezeigt erhalten.
import os
absolutepath = os.path.abspath(__file__)
print(absolutepath)
Ausgabe:
C:\PythonProjects\Tutorials\Paths\paths.py
Navigieren Sie mit dem absoluten Pfad in Python zum Verzeichnis Strings
Das Navigieren zu einem Ordner über den absoluten Pfad in Python ist ziemlich einfach. Das einzige Problem ist, dass Sie die genauen Namen aller Verzeichnisse aus dem Stammverzeichnis kennen müssen.
import os
print("Old cwd = " + os.getcwd())
os.chdir("C:\\PythonProjects\\Tutorials\\Strings")
print("New cwd = " + os.getcwd())
Relativer Pfad
Der absolute Pfad ist hilfreich, kann aber sehr bald komplex werden. Um diese Komplexität zu minimieren, wird ein relativer Pfad verwendet. Relativer Pfad bezeichnet den Pfad einer bestimmten Datei relativ zum aktuellen Arbeitsverzeichnis.
Wenn das aktuelle Arbeitsverzeichnis zum Beispiel C:\PythonProjects\Tutorials
ist, dann wäre der relative Pfad der Datei path.py
\Paths\paths.py
, was kürzer und einfacher zu verwenden ist als der absolute Pfad C:\PythonProjects\Tutorials\Paths\paths.py
.
Der absolute Pfad einer Datei bleibt überall gleich, aber der relative Pfad ändert sich abhängig vom aktuellen Arbeitsverzeichnis. Dieses Phänomen wird im folgenden Codierungsbeispiel gezeigt.
Navigieren zum Verzeichnis Strings
unter Verwendung des relativen Pfades in Python
Wenn wir auf Dateien im Ordner Strings
zugreifen müssen, müssen wir entweder den vollständigen absoluten Pfad C:\PythonProjects\Tutorials\Strings\string.py
verwenden oder wie im folgenden Code beschrieben vorgehen.
import os
import sys
absolutepath = os.path.abspath(__file__)
print(absolutepath)
fileDirectory = os.path.dirname(absolutepath)
print(fileDirectory)
# Path of parent directory
parentDirectory = os.path.dirname(fileDirectory)
print(parentDirectory)
# Navigate to Strings directory
newPath = os.path.join(parentDirectory, "Strings")
print(newPath)
Ausgabe:
C:\PythonProjects\Tutorials\Paths\paths.py
C:\PythonProjects\Tutorials\Paths
C:\PythonProjects\Tutorials
C:\PythonProjects\Tutorials\Strings
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn