为了账号安全,请及时绑定邮箱和手机立即绑定

python中的列表中的树文件结构?

python中的列表中的树文件结构?

沧海一幻觉 2021-03-30 13:11:47
我有一个动态列表,可能看起来像这样:['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': {}}}


查看完整回答
反对 回复 2021-04-01
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

这是一个非常粗糙的算法:

  • 对于列表中的每个字符串:

    • 检查当前级别是否有该名称的树节点,否则创建它

    • 如果不是叶子,则使该节点刚刚访问(或创建)为当前节点

    • 将其拆分为路径组件

    • 对于每个组件:


查看完整回答
反对 回复 2021-04-01
  • 3 回答
  • 0 关注
  • 124 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信