代码之家  ›  专栏  ›  技术社区  ›  10SecTom

pathlib-连接n个父级

  •  2
  • 10SecTom  · 技术社区  · 8 年前

    我在玩pathlib,试图找出是否有一个简单的方法来做以下的事情-我有一组路径,我想从中提取前4个父路径,并将这4个连接到一个路径中。

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

    我知道我可以把这些部分循环起来并连接到第n个部分,但是我想知道有没有一种方法可以像下面这样做 p.joinpath(p.parents[0:4]) , p.joinpath(p.parents[0: 'known_index'+1]) ,或者任何最具蟒蛇性的东西。

    更新:

    我设法加入到第n个元组解包中 print(p.joinpath(*p.parts[0:5])) ,是否有一种更可取的方法,而我仍然未能实现上述备选案例的目标。

    更新:

    我找到了另一个选择 print(p.joinpath(*p.parts[0: p.parts.index('PCB_236_237_ARM')+2]))

    我现在只是在寻找最蟒蛇的方式。

    1 回复  |  直到 8 年前
        1
  •  1
  •   normanius    7 年前

    在我看来,这很像蟒蛇:

    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 自己的路。