从具有结束斜杠的路径中提取目录

And*_*ndy 2 python

从带有结尾斜杠的路径中提取目录的优雅方法是什么?

例如

/foo/bar/test/

我想test.

os.path.basename如果没有结局,我可以做/.

是我下一个做以下事情的最佳选择:

  if directory[:-1] == '/':
    basename = os.path.basename(directory[:-1])
  else:
    basename = os.path.basename(directory)
Run Code Online (Sandbox Code Playgroud)

因为这可能不是os不可知或非常干净.

lar*_*sks 10

电话os.path.abspath会为您处理:

>>> import os
>>> os.path.abspath('/foo/bar/test/')
'/foo/bar/test'
>>> os.path.abspath('/foo/bar/test')
'/foo/bar/test'
>>> 
Run Code Online (Sandbox Code Playgroud)

所以:

>>> os.path.basename(os.path.abspath('/foo/bar/test/'))
'test'
Run Code Online (Sandbox Code Playgroud)

  • 好人@StevenRumbalski (2认同)