使用python查找路径字符串列表中的公共父路径字符串列表

时间:2012-08-27 16:44:38

标签: python filesystems

使用python查找路径字符串列表中最长公共父路径字符串列表的最有效方法是什么?

附加说明如果有两个或更多匹配,我希望根据需要下降以尽可能少地创建冗余

输入列表

input_paths = [
  '/path/to/a/directory/of/files',
  '/path/to/a/directory/full/of/files',
  '/path/to/some/more/files',
  '/path/to/some/more/directories/of/files'
  '/path/to/another/file',
  '/mount/another/path/of/files',
  '/mount/another/path/of/test/stuff',
  '/mount/another/path/of/files/etc',
  '/mount/another/drive/of/things',
  '/local/folder/of/documents'
]

输出列表

common_prefix_list = [
  '/path/to/a/directory',
  '/path/to/some/more',
  '/path/to/another',
  '/mount/another/path/of',
  '/local/folder/of'
]

我的基本猜测是在os.sep上拆分成列表,然后使用set intersection,但我相信有更强大的算法可以找到本质上最常见的子串问题。我相信这已经做了一百万次,所以请提供你优雅的解决方案。

我的最终任务是将不同路径中项目共有的资产列表收集到一个公共文件夹中,该文件夹的结构不会与单个资产产生冲突,也不会创建过多冗余的路径。

0 个答案:

没有答案