Python 2.7 如何找到路径列表的公共路径?
我有一个列表,其中的路径使用“/”作为分隔符,例如:Python 2.7 如何找到路径列表的公共路径?,python-2.7,Python 2.7,我有一个列表,其中的路径使用“/”作为分隔符,例如: aaa/bbb/ccc/ddd aaa/bbb/ccceee aaa/bbb/ccc/fff 如何用python编写一个返回的函数 字符串“aaa/bbb/”?我对python完全陌生(从昨天开始),但这是我想到的: path=['aaa/bbb/ccc/ddd/eee','aaa/bbb/ccceee/fff','aaa/bbb/ddd/eee','aaa/bbb/'] def get_公共路径(路径): 公共=[] 公共_大小=-1 对
aaa/bbb/ccc/ddd
aaa/bbb/ccceee
aaa/bbb/ccc/fff
如何用python编写一个返回的函数
字符串“aaa/bbb/”?我对python完全陌生(从昨天开始),但这是我想到的:
path=['aaa/bbb/ccc/ddd/eee','aaa/bbb/ccceee/fff','aaa/bbb/ddd/eee','aaa/bbb/']
def get_公共路径(路径):
公共=[]
公共_大小=-1
对于路径中的p:
s=p.split(“/”)
s、 流行音乐()
如果公共_大小==-1:
普通尺寸=透镜(s)
普通=s
持续
而普通大小>0和s[0:普通大小]!=常见的:
公共_大小-=1
common.pop()
返回“/”。连接(公共)+“/”
公共路径=获取公共路径(路径)
打印“公共路径=\'{}\”;长度={}。格式(公共路径,len(公共路径))
哪些产出:
公共路径='aaa/bbb/';长度=8
如您所发布的以换行符分隔的输入:
paths = """
aaa/bbb/ccc/ddd
aaa/bbb/ccceee
aaa/bbb/ccc/fff
"""
列表理解、zip()
、set()
和join()
这对你有好处吗
import os
paths = ["aaa/bbb/ccc/ddd",
"aaa/bbb/ccceee",
"aaa/bbb/ccc/fff"]
os.path.commonpath(paths)
你试过什么吗?@HaifengZhang我不管他试过什么。我关心的是他有问题,有人解决了他(和我)的问题。但是,当您考虑跨平台需求时,它会比这更复杂一些。在python3.5中,有os.path.commonpath(而不是commonprefix,这是一种欺骗行为)。我最终从3.5版本移植了commonpath
import os
paths = ["aaa/bbb/ccc/ddd",
"aaa/bbb/ccceee",
"aaa/bbb/ccc/fff"]
os.path.commonpath(paths)