110

に似たものがありますos.path.dirname(path)が、パスライブラリにありますか?

4

2 に答える 2

176

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]。a を文字列に変換し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.dirnameことに注意してください。pathlibpathlibsome/path/some:

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

返品中:os.path.dirname_some/path/some/path

>>> os.path.dirname('some/path/')
'some/path'
于 2016-02-18T19:02:56.457 に答える