我有一个动态列表,可能看起来像这样:['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 filehello如何在Python中执行此操作?以下代码将列表构造到文件的根目录。在那之后我该如何进行? [i.split('/') for i in a]
3 回答
holdtom
TA贡献1805条经验 获得超10个赞
您可以非常简单地构建层次结构,如下所示:
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': {}}}
胡子哥哥
TA贡献1825条经验 获得超6个赞
这是一个非常粗糙的算法:
对于列表中的每个字符串:
检查当前级别是否有该名称的树节点,否则创建它
如果不是叶子,则使该节点刚刚访问(或创建)为当前节点
将其拆分为路径组件
对于每个组件:
添加回答
举报
0/150
提交
取消