输入文件包含文件路径列表。 建议算法做层次结构排序输出,如下所示
输入
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]