从带有结尾斜杠的路径中提取目录的优雅方法是什么?
例如
/foo/bar/test/
我希望test
。
如果没有结尾os.path.basename
,我可以/
。
我是下一个做以下事情的最佳选择:
if directory[:-1] == '/':
basename = os.path.basename(directory[:-1])
else:
basename = os.path.basename(directory)
因为这可能不是os不可知或非常干净。
答案 0 :(得分:10)
致电os.path.abspath
会为您解决此问题:
>>> import os
>>> os.path.abspath('/foo/bar/test/')
'/foo/bar/test'
>>> os.path.abspath('/foo/bar/test')
'/foo/bar/test'
>>>
所以:
>>> os.path.basename(os.path.abspath('/foo/bar/test/'))
'test'