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

8 投票
3 回答
4462 浏览
提问于 2025-04-17 23:32

我刚下载了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

根据文档parents可以让你获取到路径的“父辈”目录,这些目录是一个不可改变的序列。这个序列的最后一个元素是逻辑上的根目录,而倒数第二个元素就是你想要的路径中的第一个目录。这就是为什么你需要用p.parents[len(p.parents)-2]这个快捷方式(这里的'-2'表示列表中的倒数第二个元素)。

需要注意的是,parents总是返回完整的路径。如果你只想要目录的名字,可以使用p.parts。在这种情况下,第一个元素是逻辑根目录,所以你应该用p.parts[1]来获取你需要的目录名。

3

Path.parts 是你需要的东西。

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

使用 parts 属性:

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

撰写回答