Python os.path.commonprefix - 是否有面向路径的函数?

时间:2015-01-11 09:41:00

标签: python path

所以我有这个python代码:

print os.path.commonprefix([r'C:\root\dir',r'C:\root\dir1'])

实际结果

C:\root\dir

期望的结果

C:\root

问题1

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

是否有类似的功能:
返回最长的路径前缀( dir by dir

问题2

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

注意:

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

1 个答案:

答案 0 :(得分:3)

  

是否有面向路径的功能?

不,是的。 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')