python - 是否有一种 pathlib 方法可以在另一条路径中找到一条路径的补码?
问题描述
给定两个 Python Pathlib 路径,其中一个是另一个(未知深度)的后缀,
x = Path("/a/b/c/d/e.ext")
y = Path("d/e.ext")
有没有一种“好”的方法来找到y
in的补码x
?即发现:
z = Path("/a/b/c")
我正在考虑一种与该方法相反的relative_to()
方法,但无法在文档或其他 SO 问题中找到合适的东西。目前,我可以执行以下任一操作,但它们的可读性不强:
z = Path(*x.parts[:-len(y.parts)])
z = Path(str(x)[:-len(str(y))])
谢谢!
解决方案
您可以将两个路径转换为str
并删除子路径以检索补码:
>>> from pathlib import Path
>>> x = Path("/a/b/c/d/e.ext")
>>> y = Path("d/e.ext")
>>> Path(str(x).replace(str(y), ""))
PosixPath('/a/b/c')
如果子路径不在路径中,它将保持路径不变。
推荐阅读
- python - Python替换列中的多个字符串模式
- javascript - 使用 Bootstsrap Jquery 在 datepicker 中将下个月和上个月替换为下一个和前一天
- nfc - NXP PN532 能否以 38400 波特率在 UART 上工作?
- python - 如何重用 aiohttp.ClientSession?
- azure - 通过服务主体访问 Azure 管道中的 Azure PIM api
- nim-lang - 调用 isSpaceAscii 时的性能问题
- flutter - 我如何转换未来
给我班上的用户? - python-3.x - 如何使用 python 或 django rest_framework 临时存储图像文件或文件而不保存在数据库中?我是 Django 新手
- python - 使用多个蓝图的 Flask 断言错误
- java - 阿拉伯语和东方语言的字体映射和 Swing UI 消息问题