如何在Python中获取路径的最后部分?
10 个回答
39
你可以这样做:
>>> import os
>>> os.path.basename('/folderA/folderB/folderC/folderD')
更新1:这种方法适用于你给它的路径是 /folderA/folderB/folderC/folderD/xx.py。在这种情况下,xx.py 会被当作基本文件名。但我想这不是你想要的结果。所以你可以这样做:
>>> import os
>>> path = "/folderA/folderB/folderC/folderD"
>>> if os.path.isdir(path):
dirname = os.path.basename(path)
更新2:正如 lars 提到的,做一些修改以适应路径末尾的 '/'。
>>> from os.path import normpath, basename
>>> basename(normpath('/folderA/folderB/folderC/folderD/'))
'folderD'
129
在Python 3中,你可以使用pathlib
模块(比如pathlib.PurePath
):
>>> import pathlib
>>> path = pathlib.PurePath('/folderA/folderB/folderC/folderD/')
>>> path.name
'folderD'
如果你想获取一个文件所在的最后一个文件夹的名字:
>>> path = pathlib.PurePath('/folderA/folderB/folderC/folderD/file.py')
>>> path.parent.name
'folderD'
617
可以使用 os.path.normpath
这个函数来去掉路径末尾的斜杠,然后用 os.path.basename
可以得到路径的最后一部分:
>>> os.path.basename(os.path.normpath('/folderA/folderB/folderC/folderD/'))
'folderD'
如果只用 basename
,它会返回最后一个斜杠后面的所有内容,在这个例子中就是 ''
(空字符串)。