python : how to get absolute path for a parent dir

标签 python path glob

我在 a/b/c/d/e/f/x.xml 位置有一个文件。我需要找到目录 d 的绝对路径,即层次结构中与目录名称 d 匹配的父目录。

我可以获得文件名的当前目录作为 os.path.abspath(__file__) 。我已经看到 pathlib 的文档和 glob ,但无法弄清楚我将如何使用它们。

谁能帮忙

编辑:

感谢下面的所有答案,我已经得到了一个类轮

os.path.join(*list(itertools.takewhile(lambda x: x != 'd', pathlib.PurePath(os.getcwd()).parts)))

我还需要将实际的目录名称附加到它,即输出应该是 a/b/c/d 。下面是一个丑陋的解决方案(使用 os.path.join 两次)。有人可以修复它吗(通过在一行中向迭代器或列表添加一个元素:)

os.path.join(os.path.join(*list(itertools.takewhile(lambda x: x != 'd', pathlib.PurePath(os.getcwd()).parts))),"d")

最佳答案

您可以在 __file__abspath 上使用 dirname 来获取 x.xml 的完整路径 :

os.path.dirname(os.path.abspath(__file__))

>>> import pathlib
>>> p = pathlib.PurePath('a/b/c/d/e/f/x.xml')
>>> p.parts
('a', 'b', 'c', 'd', 'f', 'x.xml')

然后您可以提取路径的任何部分。如果你想获取d文件夹:

import itertools
res = '/'.join(itertools.takewhile(lambda x: x != 'd', p.parts))

关于 python : how to get absolute path for a parent dir,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46904428/

相关文章:

python - Knn 预测在 y_test 上达到 100%

php - 无法从php执行python脚本

css - Rails 4 - 合并供应商 Assets

c++ - 使用 QDir 过滤器列出子目录中的文件

python - 使用 glob 扫描文件路径

python - XML 阅读器似乎忽略了标签层次结构

python - 如何在 Windows 机器上定义 .pdbrc?

java - 在 Ant 中排除 jar flom 类路径

c# - 使用 RenderedGeometry 作为路径数据不起作用

git - 将正则表达式语法转换为 glob(从 Mercurial 切换到 Git)