Quellcode: Lib/posixpath.py (für POSIX) andLib/ntpath.py (für Windows NT).
Dieses Modul implementiert einige nützliche Funktionen für Pfadnamen. Zum Lesen oder Schreiben von Dateien siehe open()
, und für den Zugriff auf das Dateisystem siehe das Modulos
. Die Pfadparameter können entweder als Zeichenfolgen oder als Bytes übergeben werden. Anwendungen werden ermutigt, Dateinamen als (Unicode-) Zeichenfolgen darzustellen. Leider können einige Dateinamen nicht berepresentable als Zeichenketten auf Unix, also Anwendungen, die supportarbitrary Dateinamen auf Unix benötigen, sollten bytes Gegenstände benutzen, um Pfadnamen darzustellen. Umgekehrt kann die Verwendung von Byte-Objekten nicht alle Dateinamen unter Windows darstellen (in der Standardcodierung mbcs
), daher sollte Windowsapplications Zeichenfolgenobjekte verwenden, um auf alle Dateien zuzugreifen.
Im Gegensatz zu einer Unix-Shell führt Python keine automatischen Pfaderweiterungen durch.Funktionen wie expanduser()
und expandvars()
können explizit aufgerufen werden, wenn eine Anwendung eine Shell-ähnliche Pfaderweiterung wünscht. (Siehe auch das Modul glob
.)
Siehe auch
Das Modul pathlib
bietet Pfadobjekte auf hoher Ebene.
Hinweis
Alle diese Funktionen akzeptieren entweder nur Bytes oder nur String-Objekte als Parameter. Das Ergebnis ist ein Objekt des gleichen Typs, wenn ein Pfad oderdateiname wird zurückgegeben.
Hinweis
Da verschiedene Betriebssysteme unterschiedliche Pfadnamenkonventionen haben, gibt es mehrere Versionen dieses Moduls in der Standardbibliothek. Das Modulos.path
ist immer das Pfadmodul, das für das Betriebssystem geeignet ist, auf dem Python ausgeführt wird, und daher für lokale Pfade verwendbar ist. Sie können die einzelnen Module jedoch auch importieren und verwenden, wenn Sie einen Pfad manipulieren möchten, der immer in einem der verschiedenen Formate vorliegt. Sie alle haben die gleiche Schnittstelle:
-
posixpath
für UNIX-ähnliche Pfade -
ntpath
für Windows-Pfade
Geändert in Version 3.8: exists()
, lexists()
, isdir()
, isfile()
,islink()
, und ismount()
gibt jetzt False
zurück, anstatt eine Ausnahme für Pfade zu erstellen, die Zeichen oder Bytes enthalten, die auf Betriebssystemebene nicht darstellbar sind.
os.path.
abspath
( path)¶
Gibt eine normalisierte absolutisierte Version des Pfadnamens path zurück. Auf den meisten Plattformen entspricht dies dem Aufruf der Funktion normpath()
asfollows: normpath(join(os.getcwd(), path))
.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
basename
( path)¶
Gibt den Basisnamen von pathname path zurück. Dies ist das zweite Element von thepair, das zurückgegeben wird, indem path an die Funktion split()
übergeben wird. Beachten Sie, dassdas Ergebnis dieser Funktion unterscheidet sich vom Unix-Basename-Programm; Wo basename für'/foo/bar/'
'bar'
zurückgibt, gibt die basename()
-Funktion eine leere Zeichenfolge (''
) zurück.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
commonpath
( pfade)¶
Gibt den längsten gemeinsamen Unterpfad jedes Pfadnamens in den Sequenzpfaden zurück. Raise ValueError
Wenn Pfade sowohl absolute als auch relative Pfadnamen enthalten, befinden sich die Pfade auf den verschiedenen Laufwerken orif Pfade ist leer. Im Gegensatz zu commonprefix()
gibt dies avalid path zurück.
Verfügbarkeit: Unix, Windows.
Neu in Version 3.5.
Geändert in Version 3.6: Akzeptiert eine Folge von pfadähnlichen Objekten.
os.path.
commonprefix
( liste)¶
Gibt das längste Pfadpräfix (zeichenweise) zurück, das aprefix aller Pfade in der Liste ist. Wenn list leer ist, geben Sie die leere Zeichenfolge zurück (''
).
Hinweis
Diese Funktion kann ungültige Pfade zurückgeben, da sie jeweils ein Zeichen ausführt. Einen gültigen Pfad finden Sie untercommonpath()
.
>>> os.path.commonprefix()'/usr/l'>>> os.path.commonpath()'/usr'
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
dirname
( path)¶
Gibt den Verzeichnisnamen von pathname path zurück. Dies ist das erste Element des Paares, das zurückgegeben wird, indem path an die Funktion split()
übergeben wird.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
exists
( path)¶
Gibt True
zurück, wenn path auf einen vorhandenen Pfad oder einen Openfile-Deskriptor verweist. Gibt False
für defekte symbolische Links zurück. Auf einigen Plattformen kann diese Funktion False
zurückgeben, wenn die Berechtigung zum Ausführen von os.stat()
für die angeforderte Datei nicht erteilt wird, auch wenn der Pfad physisch vorhanden ist.
Geändert in Version 3.3: path kann nun eine ganze Zahl sein: True
wird zurückgegeben, wenn es sich um einen geöffneten Dateideskriptor handelt, False
andernfalls.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
lexists
(path)¶
Return True
wenn path auf einen existierenden Pfad verweist. Gibt True
für abgebrochene symbolische Links zurück. Entspricht exists()
auf Plattformen mitos.lstat()
.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
expanduser
( path)¶
Geben Sie unter Unix und Windows das Argument mit einer Anfangskomponente von ~
oder~user
zurück, die durch das Home-Verzeichnis dieses Benutzers ersetzt wird.
Unter Unix wird eine initiale ~
durch die Umgebungsvariable HOME
ersetzt, wenn sie gesetzt ist; andernfalls wird das Home-Verzeichnis des aktuellen Benutzers über das integrierte Modul pwd
im Passwortverzeichnis nachgeschlagen. Eine initiale ~user
wird direkt im Kennwortverzeichnis gesucht.
Unter Windows wird USERPROFILE
verwendet, wenn gesetzt, andernfalls wird eine Kombination aus HOMEPATH
und HOMEDRIVE
verwendet. Eine initiale~user
wird behandelt, indem die letzte Verzeichniskomponente aus dem oben abgeleiteten createduser-Pfad entfernt wird.
Wenn die Erweiterung fehlschlägt oder der Pfad nicht mit einer Tilde beginnt, wird der Pfad unverändert zurückgegeben.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
Geändert in Version 3.8: Verwendet unter Windows nicht mehr HOME
.
os.path.
expandvars
( path)¶
Gibt das Argument mit erweiterten Umgebungsvariablen zurück. Teilzeichenfolgen der Form$name
oder ${name}
werden durch den Wert von environment variablename ersetzt. Fehlerhafte Variablennamen und Verweise auf nicht vorhandene Variablen werden unverändert gelassen.
Unter Windows werden %name%
Erweiterungen zusätzlich zu $name
und${name}
unterstützt.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
getatime
( path)¶
Gibt den Zeitpunkt des letzten Zugriffs auf path zurück. Der Rückgabewert ist eine Gleitkommazahl, die angibt, wie viele Sekunden seit der Epoche vergangen sind (siehe Modul time
). Erhöhen SieOSError
, wenn die Datei nicht existiert oder nicht zugegriffen werden kann.
os.path.
getmtime
( path)¶
Gibt den Zeitpunkt der letzten Änderung des Pfades zurück. Der Rückgabewert ist eine Gleitkommazahl, die die Anzahl der Sekunden seit der Epoche ergibt (siehe Modul time
).Erhöhen Sie OSError
, wenn die Datei nicht existiert oder nicht zugegriffen werden kann.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
getctime
( path)¶
Gibt die ctime des Systems zurück, die auf einigen Systemen (wie Unix) die Zeit der letzten Metadatenänderung und auf anderen (wie Windows) die Erstellungszeit für path ist.Der Rückgabewert ist eine Zahl, die die Anzahl der Sekunden seit der Epoche angibt (siehe time
-Modul). Erhöhen Sie OSError
, wenn die Datei nicht existiert oderunzugänglich.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
getsize
( path)¶
Gibt die Größe von path in Byte zurück. Erhöhen Sie OSError
, wenn die Datei nicht existiert oder nicht zugegriffen werden kann.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
isabs
( path)¶
Gibt True
zurück, wenn path ein absoluter Pfadname ist. Unter Unix bedeutet dies, dass es mit einem Schrägstrich beginnt, unter Windows beginnt es mit einem (hinteren) Schrägstrich, nachdem ein potenzieller Laufwerksbuchstabe abgehackt wurde.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
isfile
(path)¶
Return True
if path is an existing
regular file.Dies folgt symbolischen Links, sodass sowohl islink()
als auch isfile()
für denselben Pfad gelten können.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
isdir
(path)¶
Return True
wenn path ein existing
Verzeichnis ist. Dies folgt symbolischen Links, sodass sowohl islink()
als auch isdir()
für denselben Pfad wahr sein können.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
islink
(path)¶
Return True
if path references to an existing
directoryentry that is a symbolic link. Immer False
, wenn symbolische Links von der Python-Laufzeit nicht unterstützt werden.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
ismount
( path)¶
Return True
if pathname path is a mount point: ein Punkt in einem Dateisystem, an dem ein anderes Dateisystem eingehängt wurde. Unter POSIX prüft die Funktion, ob sich das übergeordnete Element von path, path/..
, auf einem anderen Gerät als path befindet oder ob path/..
und path auf denselben Knoten auf demselben Gerät zeigen – dies sollte Einhängepunkte für alle Unix— und POSIX-Varianten erkennen. Es ist nicht in der Lage, Bind-Mounts auf demselben Dateisystem zuverlässig zu erkennen. Unter Windows sind ein Laufwerksbuchstabe root und eine Freigabe UNC immer Einhängepunkte, und für jeden anderen Pfad wird GetVolumePathName
aufgerufen, um festzustellen, ob er sich vom Eingabepfad unterscheidet.
Neu in Version 3.4: Unterstützung für die Erkennung von Nicht-Root-Mount-Punkten unter Windows.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
join
( path, *paths)¶
Verbinden Sie eine oder mehrere Pfadkomponenten intelligent. Der Rückgabewert ist die Verkettung von path und allen Mitgliedern von *paths mit genau onedirectory Trennzeichen (os.sep
) nach jedem nicht leeren Teil außer thelast , was bedeutet, dass das Ergebnis nur in einem Trennzeichen endet, wenn das lastpart leer ist. Wenn es sich bei einer Komponente um einen absoluten Pfad handelt, werden alle previouscomponents verworfen, und der Beitritt wird von der absoluten pathcomponent fortgesetzt.
Unter Windows wird der Laufwerksbuchstabe nicht zurückgesetzt, wenn eine absolute Pfadkomponente (z. B. r'\foo'
) gefunden wird. Wenn eine Komponente einen Laufwerksbuchstaben enthält, werden alle vorherigen Komponenten verworfen und der Laufwerksbuchstabe wird zurückgesetzt. Da es für jedes Laufwerk ein aktuelles Verzeichnis gibt, stelltos.path.join("c:", "foo")
einen Pfad relativ zum aktuellen Verzeichnis auf Laufwerk C:
(c:foo
) dar, nicht c:\foo
.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt für Pfad und Pfade.
os.path.
normcase
( path)¶
Normalisiert den Fall eines Pfadnamens. Konvertieren Sie unter Windows alle Zeichen in derpfadname in Kleinbuchstaben, und konvertieren Sie auch Schrägstriche in Schrägstriche.Geben Sie auf anderen Betriebssystemen den Pfad unverändert zurück.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
normpath
( pfad)¶
Normalisieren Sie einen Pfadnamen, indem Sie redundante Trennzeichen und A//B
, A/B/
, A/./B
und A/foo/../B
alle werden A/B
. Diese Zeichenfolgenmanipulation kann die Bedeutung eines Pfades ändern, der symbolische Links enthält. Unter Windows konvertiert es Schrägstriche nach Schrägstriche nach hinten. Verwenden Sie normcase()
, um die Groß- / Kleinschreibung zu normalisieren.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
realpath
( path)¶
Gibt den kanonischen Pfad des angegebenen Dateinamens zurück und eliminiert alle symbolischen Links, die im Pfad vorkommen (sofern sie vom Betriebssystem unterstützt werden).
Hinweis
Wenn symbolische Verknüpfungszyklen auftreten, ist der zurückgegebene Pfad ein Mitglied des Zyklus, es wird jedoch nicht garantiert, um welches Mitglied es sich handelt.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
Geändert in Version 3.8: Symbolische Links und Junctions werden nun unter Windows aufgelöst.
os.path.
relpath
( pfad, start=os.curdir)¶
Gibt einen relativen Dateipfad zum Pfad entweder aus dem aktuellen Verzeichnis oder aus einem optionalen Startverzeichnis zurück. Dies ist eine Pfadberechnung: Auf das Dateisystem wird nicht zugegriffen, um die Existenz oder Art von path oder start zu bestätigen.
start ist standardmäßig os.curdir
.
Verfügbarkeit: Unix, Windows.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
samefile
( pfad1, Pfad2)¶
Gibt True
zurück, wenn beide Pfadnamenargumente auf dieselbe Datei oder dasselbe Verzeichnis verweisen.Dies wird durch die Gerätenummer und die i-Knotennummer bestimmt und löst anexception aus, wenn ein os.stat()
-Aufruf für einen der Pfadnamen fehlschlägt.
Verfügbarkeit: Unix, Windows.
Geändert in Version 3.2: Windows-Unterstützung hinzugefügt.
Geändert in Version 3.4: Windows verwendet jetzt die gleiche Implementierung wie alle anderen Plattformen.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
sameopenfile
( fp1, fp2)¶
Return True
wenn sich die Dateideskriptoren fp1 und fp2 auf dieselbe Datei beziehen.
Verfügbarkeit: Unix, Windows.
Geändert in Version 3.2: Windows-Unterstützung hinzugefügt.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
samestat
( stat1, stat2)¶
Gibt True
zurück, wenn sich die stat-Tupel stat1 und stat2 auf dieselbe Datei beziehen.Diese Strukturen können von os.fstat()
,os.lstat()
oder os.stat()
zurückgegeben worden sein. Diese Funktion implementiert den zugrunde liegenden Vergleich, der von samefile()
und sameopenfile()
verwendet wird.
Verfügbarkeit: Unix, Windows.
Geändert in Version 3.4: Windows-Unterstützung hinzugefügt.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
split
( pfad)¶
Teilen Sie den Pfadnamenpfad in ein Paar, (head, tail)
wobei tail die letzte Pfadnamenkomponente ist und head alles ist, was dazu führt. Thetail Teil wird nie einen Schrägstrich enthalten; wenn Pfad endet in einem Schrägstrich, tailwill leer sein. Wenn im Pfad kein Schrägstrich vorhanden ist, ist head leer. Wenn es leer ist, sind Kopf und Schwanz leer. Nachgestellte Schrägstriche werden vom Kopf entfernt, es sei denn, es handelt sich um die Wurzel (nur ein oder mehrere Schrägstriche). In allen Fällen gibt join(head, tail)
einen Pfad zum selben Speicherort wie path zurück (die Zeichenfolgen können jedoch abweichen). Siehe auch die Funktionen dirname()
undbasename()
.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
splitdrive
( pfad)¶
Teilen Sie den Pfadnamen path in ein Paar (drive, tail)
wobei drive entweder ein Mount-Punkt oder die leere Zeichenfolge ist. Auf Systemen, die keine drivespecifications verwenden, ist drive immer die leere Zeichenfolge. In allen Fällen ist drive+ tail
dasselbe wie path .
Teilt unter Windows einen Pfadnamen in Laufwerk / UNC und relativen Pfad auf.
Wenn der Pfad einen Laufwerksbuchstaben enthält, enthält das Laufwerk allesbis einschließlich des Doppelpunkts.beispielsweise. splitdrive("c:/dir")
gibt ("c:", "/dir")
zurück Wenn der Pfad einen UNC-Pfad enthält, enthält er den Hostnamen und die Freigabe bis einschließlich des vierten Trennzeichens.zB splitdrive("//host/computer/dir")
gibt zurück ("//host/computer", "/dir")
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
splitext
( path)¶
Teilen Sie den Pfadnamen path in ein Paar (root, ext)
, so dass root + ext ==path
, und ext ist leer oder beginnt mit einem Punkt und enthält höchstens oneperiod . Führende Punkte im Basisnamen werden ignoriert; splitext('.cshrc')
gibt ('.cshrc', '')
zurück.
Geändert in Version 3.6: Akzeptiert ein pfadähnliches Objekt.
os.path.
supports_unicode_filenames