web-dev-qa-db-ja.com

pathlib.pathから特定のファイルが存在するフォルダー名を取得する方法は?

os.path.dirname(path)に似たものがありますが、pathlibにありますか?

29
trainset

特定のパスのすべての親ディレクトリを含むparents要素があるようです。たとえば、次で始まる場合:

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

次に、_p.parents[0]_はfileを含むディレクトリです。

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

...そして_p.parents[1]_が次のディレクトリになります:

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

等。

_p.parent_は、_p.parents[0]_を要求する別の方法です。 Pathを文字列に変換して、期待どおりの結果を得ることができます。

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

また、Pathでも.absolute()メソッドを使用して絶対パスを取得できます。

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