Python os.path.commonprefix - 是否有面向路径的功能?

ida*_*hmu 3 python path

所以我有这个python代码:

print os.path.commonprefix([r'C:\root\dir',r'C:\root\dir1'])
Run Code Online (Sandbox Code Playgroud)

真实结果

C:\root\dir
Run Code Online (Sandbox Code Playgroud)

想要的结果

C:\root
Run Code Online (Sandbox Code Playgroud)

问题 1

基于os.path.commonprefix文档:
返回最长的路径前缀(逐个字符)

是否有类似的函数:
返回最长路径前缀(由 dir 取 dir

问题2

如果commonprefix实现os.path为什么不是面向路径的,这意味着返回我想要的结果而不是真正的结果?

笔记:

我可以自己轻松地实现这一点,但如果它已经实现了为什么不使用它呢?

jfs*_*jfs 5

是否有面向路径的功能?

不,是的。commonprefix()可以处理任意序列,而不仅仅是字符串。


将路径拆分为组件并调用commonprefix()它,例如:

>>> import os
>>> from pathlib import PureWindowsPath
>>> a, b = map(PureWindowsPath, [r'C:\root\dir', r'C:\root\dir1'])
>>> PureWindowsPath(*os.path.commonprefix([a.parts, b.parts]))
PureWindowsPath('C:/root')
Run Code Online (Sandbox Code Playgroud)