有没有人知道从给定路径中提取倒数第二个文件夹名称的聪明方法?
例如folderA / folderB / folderC / folderD - >我想知道folderC的名称是什么,我不知道其他文件夹的名称,在folderC之前可能有可变数量的目录,但它始终是倒数第二个文件夹。
我提出的所有内容看起来都太麻烦了(比如使用basename和normpath获取folderD的名称,从路径字符串中删除它,以及获取文件夹C
欢呼,-m答案 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'
也就是说,我们找到命名路径的“父目录”,然后从中提取生成路径的文件名。