Pathlib - 加入n个父母

时间:2018-05-31 08:46:02

标签: python python-3.x path pathlib

我正在玩Pathlib并试图找出是否有一种简单的方法来执行以下操作 - 我有一组路径,我想从中提取前4个父项,并将这4个连接到路径中。

或者(如果可能的话)我想加入所有父母,直到父母通过一个给定的父母,例如,c://d1//d2//known//d4//...在这里我想要提取到//d4,即父母之后已知的'父节点。

我知道我可以循环遍历各个部分并加入到第n个部分,但我想知道是否有办法执行以下p.joinpath(p.parents[0:4])p.joinpath(p.parents[0: 'known_index'+1])或其他任何操作大多数pythonic。

更新

我设法通过元组解包print(p.joinpath(*p.parts[0:5]))加入到第n个,是否有一种首选方式,我仍然无法实现上述替代案例的目标。

更新

我找到了一个选项'替代'案例print(p.joinpath(*p.parts[0: p.parts.index('PCB_236_237_ARM')+2]))

我现在正在寻找最恐怖的方式。

1 个答案:

答案 0 :(得分:1)

对我来说,这看起来足够pythonic:

p1 = pl.Path('c://d1//d2//known//d4//')
idx = p1.parts.index('known')
p2 = pl.Path(*p1.parts[:idx+1])

我使用pl.Path(*segments)来加入片段,因为实例方法p.joinpath()将片段附加到实例的p自己的路径上。