如何找到路径的第一个元素?
我刚下载了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'