HOWTO · Python

Absoluten Pfad in Python ermitteln

Es wird demonstriert, wie man den absoluten Pfad einer Datei in Python ermittelt

In diesem Tutorial wird demonstriert, wie man den absoluten Pfad einer Datei oder eines Ordners in Python auslesen kann.

Verwenden Sie abspath(), um den absoluten Pfad in Python zu erhalten

Unter dem Python-Modul os befinden sich nützliche Hilfsfunktionen und Eigenschaften, die Dateipfade unter der Eigenschaft os.path manipulieren und darauf zugreifen. Um den absoluten Pfad mithilfe dieses Moduls zu erhalten, rufen Sie path.abspath() mit dem angegebenen Pfad auf, um den absoluten Pfad zu erhalten.

import os

simp_path = "demo/which_path.docx"
abs_path = os.path.abspath(simp_path)

print(abs_path)

Die Ausgabe der Funktion abspath() gibt einen String-Wert des absoluten Pfades relativ zum aktuellen Arbeitsverzeichnis zurück.

Ausgabe:

/Users/user/python/demo/which_path.docx

Das Modul pathlib verwenden, um den absoluten Pfad in Python zu ermitteln

Das Python-Modul pathlib bietet ähnliche Funktionen wie os.path und enthält Klassen, die Dateipfade mit ihren entsprechenden Eigenschaften repräsentieren, sowie Funktionen zur Pfadmanipulation und zum Zugriff.

Um den absoluten Pfad mit pathlib zu ermitteln, importieren Sie die Klasse Path aus dem Modul pathlib und verwenden die Funktion Path.absolute() dieser Klasse, um den absoluten Pfad einer bestimmten Datei oder eines Ordners zu ermitteln.

from pathlib import Path

fpath = Path("sample2.py").absolute()

print(fpath)

Die Angabe des absoluten Pfades als Parameter wird ebenfalls unterstützt und gibt diesen direkt aus, anstatt die Stammordner anzuhängen und damit überflüssig zu machen.

from pathlib import Path

fpath = Path("/Users/user/python/sample2.py").absolute()

print(fpath)

Beide Instanzen erzeugen die gleiche Ausgabe:

/Users/user/python/sample2.py

Zusammengefasst gibt es in Python mit den Modulen os und pathlib zwei einfache Möglichkeiten, den absoluten Pfad einer Datei oder eines Ordners zu ermitteln. Performance-mäßig sind beide Lösungen relativ schnell, und es ist nur eine Frage der Präferenz, welche Lösung der Entwickler verwenden möchte.