我有一个动态列表,可能如下所示:
['test_data/reads1.fq', 'test_data/reads_2.fq', 'test_data/new_directory/ok.txt',
'test_data/new_directory/new_new_dir/test.txt', 'hello/hello1.txt'] and so on
我想从这个文件构建层次结构树结构:
test_data
files
new_directory
file
new_new_dir
file
hello
我怎样才能在Python中执行此操作?
以下代码将构建列表到文件的根目录。我怎么能在那之后继续?
[i.split('/') for i in a]
答案 0 :(得分:4)
这是一个非常粗略的算法:
答案 1 :(得分:4)
您可以非常简单地构建层次结构,如下所示:
t = {}
for p in pp:
tt = t
for c in p.split('/'):
tt = tt.setdefault(c, {})
唯一的问题是,树叶被表示为带有空字典的键:
{'test_data': {'reads1.fq' : {},
'reads_2.fq' : {},
'new_directory': {'ok.txt' : {},
'new_new_dir': {'test.txt': {}}}},
'hello' : {'hello1.txt': {}}}