Export directory or file tree list,Python 生成文件夹或者文件清单.

首先这是一个悲惨的故事,我的某一块硬盘坏了…然后我忘记了硬盘内有什么东西,就写了一个小脚本来生成目录清单,部分代码来自互联网,但是互联网中的版本多多少少有一些问题,在这个基础上重写了一下.

git地址

Export directory or file tree list

export pretty and readable directory or file tree list.

from directoryTree import DirectoryTree

if __name__ == '__main__':
    ignore_list = ('.git', '$RECYCLE.BIN', '.svn', 'System Volume Information', '.sync', '.idea')
    tree = DirectoryTree(ignore_list=ignore_list, directory_path=r'E:\CloudMusic\Aimer')
    print('==================FileTree==================')
    print(tree.tree)
    print('==================DirTree==================')
    print(tree.dir_tree)
==================FileTree==================
E:/CloudMusic/Aimer/
├────E:/CloudMusic/Aimer/After Dark/
│    └────E:/CloudMusic/Aimer/After Dark/Aimer - 六等星の夜 (from Live at anywhere).ncm
├────E:/CloudMusic/Aimer/broKen NIGHT / holLow wORlD/
│    └────E:/CloudMusic/Aimer/broKen NIGHT / holLow wORlD/Aimer - my sweetest one.flac
├────E:/CloudMusic/Aimer/DAWN/
│    └────E:/CloudMusic/Aimer/DAWN/Aimer - LAST STARDUST.flac
├────E:/CloudMusic/Aimer/Daydream/
│    └────E:/CloudMusic/Aimer/Daydream/Aimer - カタオモイ.ncm
├────E:/CloudMusic/Aimer/Ref:rain (期間生産限定盤)/
│    └────E:/CloudMusic/Aimer/Ref:rain (期間生産限定盤)/Aimer - Ref:rain.ncm
└────E:/CloudMusic/Aimer/茜さす/everlasting snow/
│    └────E:/CloudMusic/Aimer/茜さす/everlasting snow/Aimer - 茜さす.ncm

==================DirTree==================
E:/CloudMusic/Aimer/
├────E:/CloudMusic/Aimer/After Dark/
├────E:/CloudMusic/Aimer/broKen NIGHT / holLow wORlD/
├────E:/CloudMusic/Aimer/DAWN/
├────E:/CloudMusic/Aimer/Daydream/
├────E:/CloudMusic/Aimer/Ref:rain (期間生産限定盤)/
└────E:/CloudMusic/Aimer/茜さす/everlasting snow/
### 树结构的Python实现 以下是基于引用内容以及专业知识整理的一份关于树结构在Python中的实现代码示例。 #### 使用嵌套字典表示树 一种简单的方式是通过嵌套字典来构建树结构。这种方式适合用于小型项目或者学习目的。 ```python # 定义一棵简单的树 tree = { 'value': 'A', 'children': [ {'value': 'B', 'children': []}, {'value': 'C', 'children': [ {'value': 'D', 'children': []} ]}, {'value': 'E', 'children': []} ] } def traverse_tree(node): """遍历树并打印节点值""" print(node['value']) for child in node['children']: traverse_tree(child) traverse_tree(tree) # 输出 A B C D E ``` 此代码展示了如何定义一颗简单的树,并对其进行前序遍历[^2]。 #### 类方式实现树 更复杂的应用场景下,可以使用类的方式来创建和操作树。这种方法更加灵活且易于扩展。 ```python class TreeNode: def __init__(self, value=None): self.value = value self.children = [] def add_child(self, child_node): """添加子节点""" self.children.append(child_node) def remove_child(self, child_node): """移除子节点""" self.children = [child for child in self.children if child is not child_node] def traverse(self): """前序遍历""" nodes_to_visit = [self] while nodes_to_visit: current_node = nodes_to_visit.pop() print(current_node.value) nodes_to_visit += reversed(current_node.children) root = TreeNode('Root') left_child = TreeNode('Left Child') right_child = TreeNode('Right Child') root.add_child(left_child) root.add_child(right_child) root.traverse() # 输出 Root Left Child Right Child ``` 上述代码展示了一个基本的树类及其核心功能,包括添加、删除子节点以及遍历整个树[^3]。 #### 文件系统模拟 如果想用树来模拟文件系统的目录结构,则可以通过继承`TreeNode`类进一步定制化需求。 ```python class Directory(TreeNode): def __init__(self, name): super().__init__(name) def display_contents(self): """显示当前目录下的所有内容""" contents = ', '.join([node.value for node in self.children]) print(f"{self.value} contains: {contents}") file_system_root = Directory('/') home_dir = Directory('/home/') user_dir = Directory('/home/user/') file_system_root.add_child(home_dir) home_dir.add_child(user_dir) file_system_root.display_contents() # 输出 / contains: /home/ home_dir.display_contents() # 输出 /home/ contains: /home/user/ ``` 这段代码演示了如何利用树状结构模仿操作系统中的路径导航体系[^1]。 #### R-TreePython 实现 当涉及到地理信息系统(GIS)或者其他需要高效处理多维空间数据的情况时,R-Trees 是一个不错的选择。 ```python from rtree import index p = index.Property() idx = index.Index(properties=p) # 插入一些二维坐标范围作为测试样本 idx.insert(1, (0, 0, 1, 1)) idx.insert(2, (2, 2, 3, 3)) query_area = (1.5, 1.5, 2.5, 2.5) results = list(idx.intersection(query_area)) print("Intersected objects:", results) # 应该返回 [2], 表明第二个对象与查询区域重叠 ``` 这里给出了一个基础版本的 R-tree 构建过程及查询逻辑[^4]。 #### 决策树算法应用案例 最后,在机器学习领域里也经常能看到树的身影——即决策树模型。下面给出的是 scikit-learn 中的一个经典例子。 ```python from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier, export_text data = load_iris() X, y = data.data, data.target clf = DecisionTreeClassifier(max_depth=3).fit(X, y) rules = export_text(clf, feature_names=data.feature_names) print(rules[:500]) # 截取部分规则查看 ``` 以上片段介绍了如何借助第三方库快速搭建起自己的分类器,并提取其内部运作机制[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值