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

我有一个动态列表,可能看起来像这样:


['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]


沧海一幻觉
浏览 125回答 3
3回答

holdtom

您可以非常简单地构建层次结构,如下所示: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': {}}}

胡子哥哥

这是一个非常粗糙的算法:对于列表中的每个字符串:检查当前级别是否有该名称的树节点,否则创建它如果不是叶子,则使该节点刚刚访问(或创建)为当前节点将其拆分为路径组件对于每个组件:
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python