web-dev-qa-db-fra.com

Comment obtenir le nom du dossier, dans lequel réside le fichier donné, à partir de pathlib.path?

Existe-t-il quelque chose de similaire à os.path.dirname(path), mais dans pathlib?

29
trainset

Il semble qu'il existe un élément parents qui contient tous les répertoires parents d'un chemin donné. Par exemple, si vous commencez par:

>>> import pathlib
>>> p = pathlib.Path('/path/to/my/file')

Alors p.parents[0] Est le répertoire contenant file:

>>> p.parents[0]
PosixPath('/path/to/my')

... et p.parents[1] sera le prochain répertoire en haut:

>>> p.parents[1]
PosixPath('/path/to')

Etc.

p.parent Est une autre façon de demander p.parents[0]. Vous pouvez convertir un Path en une chaîne et obtenir à peu près ce que vous attendez:

>>> str(p.parent)
'/path/to/my'

Et aussi sur n'importe quel Path vous pouvez utiliser la méthode .absolute() pour obtenir un chemin absolu:

>>> os.chdir('/etc')
>>> p = pathlib.Path('../relative/path')
>>> str(p.parent)
'../relative'
>>> str(p.parent.absolute())
'/etc/../relative'
51
larsks