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

Python 从路径中提取倒数第二个文件夹名,python,path,directory,Python,Path,Directory,有人知道从给定路径提取倒数第二个文件夹名的聪明方法吗 例如folderA/folderB/folderC/folderD ->我想知道folderC的名称,我不知道其他文件夹的名称,在folderC之前可能有不同数量的目录,但它总是倒数第二个文件夹 我想到的一切似乎都太麻烦了(例如使用basename和normpath获取folderD的名称,从路径字符串中删除它,以及获取folderC) 干杯,-m是的,当然有: >>> import os.path >>>

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

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

我想到的一切似乎都太麻烦了(例如使用basename和normpath获取folderD的名称,从路径字符串中删除它,以及获取folderC)

干杯,-m

是的,当然有:

>>> import os.path
>>> os.path.basename(os.path.dirname("folderA/folderB/folderC/folderD"))
'folderC'
也就是说,我们找到命名路径的“父目录”,然后从中提取结果路径的文件名。

是的,确实有:

>>> import os.path
>>> os.path.basename(os.path.dirname("folderA/folderB/folderC/folderD"))
'folderC'
也就是说,我们找到命名路径的“父目录”,然后从中提取结果路径的文件名。

是的,确实有:

>>> import os.path
>>> os.path.basename(os.path.dirname("folderA/folderB/folderC/folderD"))
'folderC'
也就是说,我们找到命名路径的“父目录”,然后从中提取结果路径的文件名。

是的,确实有:

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

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

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

>>> os.path.basename(os.path.dirname('test/splitting/folders'))
'splitting'
或者,如果您知道您将始终在一个路径为
'/'
的文件系统上,您可以使用常规的old
split()
直接到达:

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

尽管这有点脆弱。dirname+basename组合在路径末尾有/没有文件的情况下工作,在拆分版本中,您必须更改索引,没有一种好方法可以在一次调用中直接跳到路径中的部分,但您可以像这样轻松完成:

>>> os.path.basename(os.path.dirname('test/splitting/folders'))
'splitting'
或者,如果您知道您将始终在一个路径为
'/'
的文件系统上,您可以使用常规的old
split()
直接到达:

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

尽管这有点脆弱。dirname+basename组合在路径末尾有/没有文件的情况下工作,在拆分版本中,您必须更改索引,没有一种好方法可以在一次调用中直接跳到路径中的部分,但您可以像这样轻松完成:

>>> os.path.basename(os.path.dirname('test/splitting/folders'))
'splitting'
或者,如果您知道您将始终在一个路径为
'/'
的文件系统上,您可以使用常规的old
split()
直接到达:

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

尽管这有点脆弱。dirname+basename组合在路径末尾有/没有文件的情况下工作,在拆分版本中,您必须更改索引,没有一种好方法可以在一次调用中直接跳到路径中的部分,但您可以像这样轻松完成:

>>> os.path.basename(os.path.dirname('test/splitting/folders'))
'splitting'
或者,如果您知道您将始终在一个路径为
'/'
的文件系统上,您可以使用常规的old
split()
直接到达:

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


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

@735Tesla,这根本不是OP所要求的…抱歉,请重新阅读问题并删除注释。那么您希望路径的输出是什么,
folderC
ant将folderC的名称作为string@735Tesla这根本不是OP要问的…抱歉,请重新阅读问题并删除注释。那么您希望路径的输出是什么,
folderC
?我希望folderC的名称作为string@735Tesla这根本不是OP要问的…抱歉,只是重读了问题并删除了评论,那又怎样是否要作为路径的输出,
folderC
?我希望folderC的名称作为string@735Tesla这根本不是OP所要求的……抱歉,请重新阅读问题并删除注释。那么您希望路径的输出是什么,
folderC
?我希望folderC的名称作为字符串,但不幸的是,事实并非如此;)不幸的是,情况并非如此;)不幸的是,情况并非如此;)不幸的是,情况并非如此;)