你如何找到路径的第一个元素?

时间:2014-03-23 16:23:29

标签: python python-3.x

我刚下载了Python 3.4,我想知道如何找到相对路径的第一个目录?即给定路径a/b/c/d我想打印a

我最接近的是:

from pathlib import Path
print(list(Path('a/b/c/d').parents)[-2])

p = Path('a/b/c/d')
print(p.parents[len(p.parents) - 2])

在这两种情况下-2部分都有点神奇。我已经阅读了文档和PEP,并没有找到更好的方法..我是否错过了一些明显的东西?

3 个答案:

答案 0 :(得分:4)

使用parts属性:

>>> from pathlib import Path
>>> Path('a/b/c/d').parts
('a', 'b', 'c', 'd')
>>> Path('a/b/c/d').parts[0]
'a'

答案 1 :(得分:1)

Path.parts就是您所需要的。

p = Path("a/b/c/d")
print(p.parts[0])

答案 2 :(得分:0)

the documentationparents为您提供一个不可变序列,提供对路径逻辑祖先的访问;该序列的最后一个元素是逻辑根,然后倒数第二个元素将成为路径中的第一个目录,这就是您要查找的内容。这就是为什么你需要使用p.parents[len(p.parents)-2]快捷方式('-2'用于列表的'倒数第二'元素)。

请注意,parents始终为您提供完整的路径。如果您只想要目录名,则可能需要使用p.parts。在这种情况下,第一个元素是逻辑根,因此您需要p.parts[1]