对不起标题,我的问题如下。我有一个路径列表,我想获得多个公共前缀。例如,鉴于我有:
['/usr/local/lib/python2.7/dist-packages/pkg_name-0.1-py2.7.egg/pkg_name',
'/usr/local/lib/python2.7/dist-packages/pkg_name-0.1-py2.7.egg/EGG-INFO',
'/usr/bin/pkg_name']
我希望:
['/usr/local/lib/python2.7/dist-packages/pkg_name-0.1-py2.7.egg/',
'/usr/bin/pkg_name']
因为前两个有一个共同的前缀是一个目录。希望我明白这一点,
魔方
编辑:我的路径是Python egg和一些可执行文件。我想删除整个鸡蛋,而不是EGG-INFO
或pkg_name
中的目录。所以它必须是/usr/.../dist-packages/pkg_name-0.1-py2.7.egg/
。另一条路径,因为它是一个可执行文件保持原样。
谢谢
答案 0 :(得分:2)
问题没有明确定义。在这种情况下你想拥有什么:
/usr/bin/a
/usr/bin/b
/usr/etc
/usr/local
应该是/usr
还是两个/usr/bin
/usr
,还是三个?
在任何一种情况下,算法都是这样的:
os.path.commonprefix()
;这将是你的第一个小组