Relativer Pfad in Python

Muhammad Maisam Abbas 10 Oktober 2023
  1. Dateipfad in Python
  2. Absoluter Pfad
  3. Relativer Pfad
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.

Beispiel für ein Dateisystem

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

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.

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
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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

Verwandter Artikel - Python Path