1. ホーム
  2. python

[解決済み] pathlib.pathから、指定したファイルが存在するフォルダ名を取得するには?

2022-11-19 03:12:48

質問

に似たものはありますか? os.path.dirname(path) のようなものはありますか?

どのように解決するのですか?

があるようです。 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'

なお os.path.dirnamepathlib は、末尾にスラッシュを持つパスの扱いを変えます。例えば pathlib の親である some/path/some :

>>> p = pathlib.Path('some/path/')
>>> p.parent
PosixPath('some')

一方 os.path.dirnamesome/path/ を返す some/path :

>>> os.path.dirname('some/path/')
'some/path'