Gibt es etwas ähnliches zu os.path.dirname (Pfad), aber in pathlib?Wie erhält man den Ordnernamen, in dem sich die angegebene Datei befindet, aus pathlib.path?
8
A
Antwort
14
Es sieht so aus, als gäbe es ein parents
Element, das alle übergeordneten Verzeichnisse eines bestimmten Pfades enthält. Zum Beispiel, wenn Sie beginnen mit:
>>> import pathlib
>>> p = pathlib.Path('/path/to/my/file')
Dann p.parents[0]
ist das Verzeichnis file
enthält:
>>> p.parents[0]
PosixPath('/path/to/my')
... und p.parents[1]
wird das nächste Verzeichnis up:
>>> p.parents[1]
PosixPath('/path/to')
Etc.
p.parent
ist eine andere r Möglichkeit, nach p.parents[0]
zu fragen. Sie können eine Path
in einen String konvertieren und so ziemlich das bekommen, was man erwarten würde:
>>> str(p.parent)
'/path/to/my'
Und auch auf jedem Path
können Sie die .absolute()
Methode verwenden, um einen absoluten Pfad zu bekommen:
>>> os.chdir('/etc')
>>> p = pathlib.Path('../relative/path')
>>> str(p.parent)
'../relative'
>>> str(p.parent.absolute())
'/etc/../relative'