将路径拆分为 'triangle' 个子文件夹

Split path into 'triangle' of subfolders

我想将一个路径拆分成它的组成部分,并从底部开始按顺序处理每个目录。对于

path = 'a/b/c/d'

我想得到

components = [
    ('', 'a'),
    ('a', 'b'),
    ('a/b', 'c'),
    ('a/b/c', 'd')
]

标准库中有什么东西可以帮助我完成任务吗?

这是有效的,尽管我更喜欢看起来更好看并且希望不易出错的东西。

>>> comp = os.path.normpath('a/b/c/d').split(os.sep)
>>> [(os.path.join(*comp[:i]) if comp[:i] else '', comp[i]) for i in range(len(comp))]
[('', 'a'), ('a', 'b'), ('a/b', 'c'), ('a/b/c', 'd')]