我刚下载了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,并没有找到更好的方法..我是否错过了一些明显的东西?
答案 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 documentation,parents
为您提供一个不可变序列,提供对路径逻辑祖先的访问;该序列的最后一个元素是逻辑根,然后倒数第二个元素将成为路径中的第一个目录,这就是您要查找的内容。这就是为什么你需要使用p.parents[len(p.parents)-2]
快捷方式('-2'用于列表的'倒数第二'元素)。
请注意,parents
始终为您提供完整的路径。如果您只想要目录名,则可能需要使用p.parts
。在这种情况下,第一个元素是逻辑根,因此您需要p.parts[1]
。