从路径中提取倒数第​​二个文件夹名称

时间:2014-07-31 13:45:33

标签: python path directory

有没有人知道从给定路径中提取倒数第​​二个文件夹名称的聪明方法?

例如folderA / folderB / folderC / folderD - >我想知道folderC的名称是什么,我不知道其他文件夹的名称,在folderC之前可能有可变数量的目录,但它始终是倒数第二个文件夹。

我提出的所有内容看起来都太麻烦了(比如使用basename和normpath获取folderD的名称,从路径字符串中删除它,以及获取文件夹C

欢呼,-m

2 个答案:

答案 0 :(得分:2)

在单个调用中直接跳转到路径中的部分并不是一个好方法,但您可以轻松完成所需的操作:

>>> os.path.basename(os.path.dirname('test/splitting/folders'))
'splitting'

或者,如果您知道自己始终位于带有'/'描述路径的文件系统上,则可以使用常规旧split()直接到达目的地:

>>> 'test/splitting/folders'.split('/')[-2]
'splitting'

虽然这有点脆弱。 dirname + basename组合在路径末尾使用/不使用文件,其中作为拆分版本,您必须更改索引

答案 1 :(得分:1)

是的,肯定是:

>>> import os.path
>>> os.path.basename(os.path.dirname("folderA/folderB/folderC/folderD"))
'folderC'

也就是说,我们找到命名路径的“父目录”,然后从中提取生成路径的文件名。

相关问题