python - python中的文件路径层次排序

标签 python file sorting hierarchy

输入文件包含文件路径列表。建议算法进行层次结构排序输出,如下所示

输入

A/file1
A/B/C/D/file3
A/B/file1
A/B/file2
A/B/C/D/file1
A/file2
A/W/X/Y/Z/file1
A/W/file1
A/W/X/file1
A/file3
A/B/C/file1
A/W/X/Y/file1
A/B/file2

预期输出

A/file1
A/file2
A/file3

A/B/file1
A/B/file2

A/B/C/file1

A/B/C/D/file1
A/B/C/D/file3


A/W/file1

A/W/X/file1

A/W/X/Y/file1

A/W/X/Y/Z/file1

尝试像下面这样编码,结果没有达到预期

import sys,os
d1,d2 = '',''
l1 = [ x for x in open(sys.argv[1])]
s2 = sorted(l1,key = lambda x : len(x.split('/')))
for linE in s2:
    f1 = linE.strip('\n')
    d1 = os.path.dirname(f1)
    if d1 != d2 : print
    d2 = d1
    print linE,

当前输出

A/file1
A/file2
A/file3

A/B/file1
A/B/file2

A/W/file1

A/B/file2

A/W/X/file1

A/B/C/file1

A/B/C/D/file3
A/B/C/D/file1

A/W/X/Y/file1

A/W/X/Y/Z/file1

请帮我用一个算法来做同样的事情

最佳答案

str = """A/file1
A/B/C/D/file3
A/B/file1
A/B/file2
A/B/C/D/file1
A/file2
A/W/X/Y/Z/file1
A/W/file1
A/W/X/file1
A/file3
A/B/C/file1
A/W/X/Y/file1
A/B/file2"""

import string
files = string.split(str, "\n")

import os.path
std = sorted(files, key=lambda file: (os.path.dirname(file), os.path.basename(file)))

print std[0]
for i in range(1,len(std)):
    if os.path.dirname(std[i]) != os.path.dirname(std[i-1]):
        print ""
    print std[i]

关于python - python中的文件路径层次排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29732298/

相关文章:

python - pandas Series (pandas.Series.query()) 是否有查询方法或类似方法?

python 迭代器、生成器以及介于两者之间的

从文件读取时出现 C++ 访问冲突

python - 使用 StaticFileHandler 在 Tornado Python 上托管文件

algorithm - C# 中的冒泡排序

swift - UISearchBar 和 Firebase 数据库

arrays - 当比较不花时间时排序

python - 读取文本文件Python中的混合数据类型

python - Python中如何根据属性选择子类

java nio 无法写入文件,旧式文件可以工作。怎么了?`