遍历目录树返回字典树,目录字典

  def getDirectoryTree(self,folder):      ‘‘‘      :param folder:文件目录      :return:目录的字典      ‘‘‘      dirtree={‘children‘:[]}      if os.path.isfile(folder):          return {‘text‘:os.path.basename(folder),‘icon‘:‘glyphicon glyphicon-leaf‘}      else:          basename=os.path.basename(folder)          dirtree[‘text‘]=basename          for item in os.listdir(folder):              dirtree[‘children‘].append(self.getDirectoryTree(os.path.join(folder,item)))          return dirtree

  def getDirectoryTreeWithJson(self,folder):      ‘‘‘      将文件夹生成树状的json串      :param folder: 文件夹      :return:文件树json      ‘‘‘      return json.dumps(self.getDirectoryTree(folder))

 result:

{‘text‘: ‘‘, ‘children‘: [{‘text‘: ‘1‘, ‘icon‘: ‘glyphicon glyphicon-leaf‘}, {‘text‘: ‘2‘, ‘icon‘: ‘glyphicon glyphicon-leaf‘}, {‘text‘: ‘child01‘, ‘children‘: [{‘text‘: ‘child001‘, ‘children‘: []}]}, {‘text‘: ‘child02‘, ‘children‘: []}]}

 网页展示:

<!DOCTYPE html>
<html class=""> <!--<![endif]-->
<head>
	<meta charset="utf-8">
	<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
	<title>jsTree</title>
	<meta name="viewport" content="width=device-width" />
	<!--[if lt IE 9]><script src="./assets/html5.js"></script><![endif]-->

	<meta name="robots" content="index,follow" />
	<link rel="stylesheet" href="./assets/bootstrap/css/bootstrap.min.css" />
	<!--控制字体的样式的-->
	<link rel="stylesheet" href="./assets/dist/themes/default/style.min.css" />
	<!-- 背景的样式下面这行 -->
	<!-- <link rel="stylesheet" href="./assets/docs.css" /> -->
	<!--[if lt IE 9]><script src="./assets/respond.js"></script><![endif]-->

	<link rel="icon" href="./assets/favicon.ico" type="image/x-icon" />
	<link rel="apple-touch-icon-precomposed" href="./assets/apple-touch-icon-precomposed.png" />
	<script>window.$q=[];window.$=window.jQuery=function(a){window.$q.push(a);};</script>
</head>
<body>
	<div>
		<div id="jstree2" class="" style="margin-top:2em;"></div>
		<script>
		$(function () {
			$(‘#jstree1‘).jstree();
			$(‘#jstree2‘).jstree({‘plugins‘:["wholerow","checkbox"], ‘core‘ : {
				‘data‘ : [
					{‘text‘: ‘temp‘, ‘children‘: [{‘text‘: ‘1‘, ‘icon‘: ‘glyphicon glyphicon-leaf‘}, {‘text‘: ‘2‘, ‘icon‘: ‘glyphicon glyphicon-leaf‘}, {‘text‘: ‘child01‘, ‘children‘: [{‘text‘: ‘child001‘, ‘children‘: []}]}, {‘text‘: ‘child02‘, ‘children‘: []}]}
,
					"And wholerow selection"
				]
			}});
		});
		</script>
	</div>
	<script src="./assets/jquery-1.10.2.min.js"></script>
	<script src="./assets/jquery.address-1.6.js"></script>
	<script src="./assets/vakata.js"></script>
	<script src="./assets/dist/jstree.min.js"></script>
	<script src="./assets/docs.js"></script>
	<script>$.each($q,function(i,f){$(f)});$q=null;</script>
</body>
</html>

结果:

  

 

时间: 2024-09-29 15:35:34

遍历目录树返回字典树,目录字典的相关文章

萌新笔记——C++里创建 Trie字典树(中文词典)(插入、查找、遍历、导入、导出)(上)

写了一个词典,用到了Trie字典树. 写这个词典的目的,一个是为了压缩一些数据,另一个是为了尝试搜索提示,就像在谷歌搜索的时候,打出某个关键字,会提示一串可能要搜索的东西. 首先放上最终的结果: input: 1 编程入门 2 编程软件 3 编程学习 4 编程学习网站 output: 1 char : 件 2 word : 编程软件 3 char : 习 4 word : 编程学习 5 char : 网 6 word : 编程学习网 7 char : 门 8 word : 编程入门 其实这里不应

白话算法与数据结构之【字典树】

1. 什么是trie树 1.Trie树 (特例结构树) Trie树,又称单词查找树.字典树,是一种树形结构,是一种哈希树的变种,是一种用于快速检索的多叉树结构.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高.      Trie的核心思想是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的. Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子

剑指Offer——Trie树(字典树)

剑指Offer--Trie树(字典树) Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是统计和排序大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计.它的优点是:最大限度地减少无谓的字符串比较,查询效率比哈希表高. Trie的核心思想是空间换时间.利用字符串的公共前缀来降低查询时间的开销以达到提高效率的目的. Trie树也有它的缺点,Trie树的内存消耗非常大.当然,或许用左儿子右兄弟的方法建树的话,可能会好点.可见,优

uva 1556 - Disk Tree(字典树)

题目连接:uva 1556 - Disk Tree 题目大意:给出N个目录关系,然后按照字典序输出整个文件目录. 解题思路:以每个目录名作为字符建立一个字典树即可,每个节点的关系可以用map优化. #include <cstdio> #include <cstring> #include <map> #include <string> #include <iostream> #include <algorithm> using nam

字典树基础

1.概述 Trie树,又称字典树,单词查找树或者前缀树,是一种用于快速检索的多叉树结构,如英文字母的字典树是一个26叉树,数字的字典树是一个10叉树. Trie一词来自retrieve,发音为/tri:/ "tree",也有人读为/tra?/ "try".  Trie树的基本性质可以归纳为: (1)根节点不包含字符,除根节点以外每个节点只包含一个字符. (2)从根节点到某一个节点,路径上经过的字符连接起来,为该节点对应的字符串. (3)每个节点的所有子节点包含的字符

(字典树)HDU - 1671 Phone List

原题链接:http://acm.hdu.edu.cn/showproblem.php?pid=1671 题意:给很多电话号码,如果在拨号的时候,拨到一个存在的号码,就会直接打出去,以致以这个号码为前缀的所有其他比这个号码长的号码将不能拨出,问是不是所有的号码都能拨. 分析:可以直接建立字典树,节点中用boolean变量表示当前是否组成电话号码,一旦在遍历完某条号码之前,已经出现存在号码,则发现问题,返回false,否则true. 我使用了一个反过来的方法,即只统计前缀出现次数,遍历完某条号码,如

1015 字典树

字典树:顾名思义,是通过字符来查找,不过只是统计以某个字符或字符串为前缀的单词个数,字典中无此前缀,返回0:有则返回个数. 创建树:根据所给字符串,依次遍历字符串件数,如果存在,num++,查看下一个字符.不存在,建立新的节点,n++,查看下一节点. 直到遍历完字符串为止. 查看:大体操作和创建一样,遍历完字符串,存在返回num,不存在返回0: 这只是一个英文字典查询,如果为世界所有字符,便会出错,可以把节点内的child数组变为一个动态数组,然后,和英文字典一样,不过我还没弄会,研究中....

Trie树(字典树)的C++实现

问题描述: Trie树 又称单词查找树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计,排序和保存大量的字符串(但不仅限于字符串),所以经常被搜索引擎系统用于文本词频统计. 举个例子:os,oh,old,char,chat这些关键词构成的trie树: root /         \ c            o /               /  \ h              s     h /  \ a    t trie树特点: ①根节点不包含字符,其他节点均包含一个字符 ②

9-11-Trie树/字典树/前缀树-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版

课本源码部分 第9章  查找 - Trie树/字典树/前缀树(键树) ——<数据结构>-严蔚敏.吴伟民版        源码使用说明  链接??? <数据结构-C语言版>(严蔚敏,吴伟民版)课本源码+习题集解析使用说明        课本源码合辑  链接??? <数据结构>课本源码合辑        习题集全解析  链接??? <数据结构题集>习题解析合辑        本源码引入的文件  链接? Status.h.Scanf.c        相关测试数据

字典树 Trie (HDU 1671)

Problem Description Given a list of phone numbers, determine if it is consistent in the sense that no number is the prefix of another. Let's say the phone catalogue listed these numbers: 1. Emergency 911 2. Alice 97 625 999 3. Bob 91 12 54 26 In this