javascript - 如何将文件路径转换为树形 View ?

标签 javascript jquery python treeview fancytree

现在我在 python 中有一些文件具有以下文件路径格式:

a/b/c/d/e/file1
a/b/c/d/e/file2
a/f/g/h/i/file3
a/f/g/h/i/file4
现在,当我在Python中获取这些路径时,我想将其转换为第三方jquery插件(例如fancytree、jqxTree)可以读取的JSON格式,以便将其转换为 TreeView 。也许还有其他更简单的方法可以做到这一点,请建议。谢谢!

最佳答案

从 Python 中,您可以生成所需的 JSON,如下所示(请注意,如果您只是跨行传送 JSON,则不需要缩进和排序,但它们使输出易于调试):

import collections
import json

myfiles = '''
    a/b/c/d/e/file1
    a/b/c/d/e/file2
    a/f/g/h/i/file3
    a/f/g/h/i/file4
'''

# Convert to a list
myfiles = myfiles.split()


def recursive_dict():
    """
    This function returns a defaultdict() object
    that will always return new defaultdict() objects
    as the values for any non-existent dict keys.
    Those new defaultdict() objects will likewise
    return new defaultdict() objects as the values
    for non-existent keys, ad infinitum.
    """
    return collections.defaultdict(recursive_dict)


def insert_file(mydict, fname):
    for part in fname.split('/'):
        mydict = mydict[part]

    # If you want to record that this was a terminal,
    # you can do something like this, too:
    # mydict[None] = True

topdict = recursive_dict()
for fname in myfiles:
    insert_file(topdict, fname)

print(json.dumps(topdict, sort_keys=True,
                indent=4, separators=(',', ': ')))

此代码生成以下输出:

{
    "a": {
        "b": {
            "c": {
                "d": {
                    "e": {
                        "file1": {},
                        "file2": {}
                    }
                }
            }
        },
        "f": {
            "g": {
                "h": {
                    "i": {
                        "file3": {},
                        "file4": {}
                    }
                }
            }
        }
    }
}

关于javascript - 如何将文件路径转换为树形 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844499/

相关文章:

python - 如何保存和编辑服务器渲染数据?

python - 使用 numpy 离散逼近高斯分布

javascript - 每隔整整一小时重新加载页面

javascript - 为什么这个 jQuery 不在点击时触发? (带单选按钮)

JQuery:可能有 3 个输入的 slider ?

javascript - 如何将名称添加到 json 中的现有值对

javascript - 将变量添加到 prepend() 方法内的 onClick() 事件

python - 在 bash 中执行 python

javascript - 随着时间的推移应该接近另一个变量 X 的变量 Y

javascript - 如果数组为空则转义以避免错误