首页 > 其他分享 >可视化文件目录树

可视化文件目录树

时间:2024-03-27 09:31:22浏览次数:13  
标签:node __ 文件目录 tree 可视化 file path root

Hello!我是”小恒不会java“

思考

今天突然看到某文里面:检查目录文件。引发了我的思考:首先应该看看目录树,检查一下

命令行

如何检查?我的电脑系统是win11,最简单的就是自带的文件系统功能

还有就是命令行工具:tree命令(Windows和部分Linux发行版中自带)可以在终端中直接输出当前目录及其子目录的层级结构。不过看了看一些大项目的目录结构,根本不够看(太长了)

 python 实现UI可视化

利用ttk模块中的Treeview控件展示指定目录及其子目录下的文件和子目录结构

代码
import os
import tkinter as tk
from tkinter import ttk

def populate_tree(tree, node):
    if tree.set(node, "type") != "directory":
        return

    path = tree.set(node, "fullpath")
    tree.delete(*tree.get_children(node))

    for p in os.listdir(path):
        p = os.path.join(path, p)
        ptype = "file" if os.path.isfile(p) else "directory"
        fname = os.path.split(p)[1]
        oid = tree.insert(node, "end", text=fname, values=[p, ptype])

        if ptype == "directory":
            tree.insert(oid, "end", text="dummy")
            tree.item(oid, text=fname)

def update_tree(event):
    tree = event.widget
    populate_tree(tree, tree.focus())

def create_root(path, tree):
    root_node = tree.insert("", "end", text=path, values=[path, "directory"])
    populate_tree(tree, root_node)

def main():
    root = tk.Tk()
    root.title("文件树可视化")

    tree = ttk.Treeview(root, columns=("fullpath", "type"))
    tree.heading("#0", text="文件结构(取决于该脚本文件层次)")
    tree.column("#0", minwidth=0, width=200)

    tree.bind("<<TreeviewOpen>>", update_tree)
    tree.pack(fill=tk.BOTH, expand=True)

    path = os.path.abspath(os.path.dirname(__file__))
    create_root(path, tree)

    root.mainloop()

if __name__ == "__main__":
    main()

再次思考:能不能生成节点关系图

思路:

python将目录树导出为DOT文件以便用python脚本实现Graphviz渲染生成图片png或者svg

导出dot文件

实现导出

已经导出,在WPS里打开,足足150w+的字数

导出代码
import os
from anytree import Node
from anytree.exporter import DotExporter

def build_file_tree(directory):
    root = Node(directory)
    for dirpath, dirs, files in os.walk(directory):
        current_node = Node(os.path.basename(dirpath), parent=root)
        for file in files:
            Node(file, parent=current_node)
    print("第一步:Building file tree...")        
    return root

def main():
    directory = "C:"  # 替换为你要可视化的目录路径
    root_node = build_file_tree(directory)

    # 将文件树导出为DOT文件
    DotExporter(root_node).to_dotfile("file_tree.dot")
    print("第二步:Building file tree...")

if __name__ == "__main__":
    main()
    print("文件树已生成,请在当前目录下打开file_tree.dot文件")

将dot文件渲染成图片

环境配置

pip安装graphviz库的Python接口,再安装Graphviz工具。最后配置环境变量

参考官方文档:User Guide — graphviz 0.20.3 documentation

python脚本实现图形渲染
代码
from graphviz import Source

with open("C:\\Users\\李恒\\Desktop\\file_tree.dot", "r", encoding="utf-8") as f:
    dot_source = f.read()

source = Source(dot_source)
source.render("graph", format="png")

标签:node,__,文件目录,tree,可视化,file,path,root
From: https://blog.csdn.net/2302_81578551/article/details/136995393

相关文章

  • 触手可及的绿意:体验园艺展示3D可视化的魅力
    在繁忙的都市生活中,我们渴望拥有一片属于自己的绿色天地,但受限于空间、时间等因素,许多人只能将这个梦想埋藏在心底。随着科技的不断发展,3D可视化技术应运而生,让绿色梦想变得触手可及。 园艺展示三维模型通过先进的三维建模和渲染技术,将园艺设计以立体、逼真的形式呈现在我们眼......
  • 初学可视化PyQt5
    【初学可视化PyQt5系列】第1章PyQt5简介第2章PyQt5新增功能第3章Hellomyfourrotordrone第4章PyQt5主要类第5章PyQt5使用Qt设计器第6章PyQt5信号与插槽第7章PyQt5布局与管理第8章PyQt5基本小部件第9章PyQt5QDialog类第10章PyQt5QMessageBox......
  • 揭开地球神秘面纱:3D可视化展示地球剖面之旅
    在广袤无垠的宇宙中,地球是一颗充满生机与奥秘的蓝色星球。我们每天都生活在这颗星球上,感受着它的温暖与恩赐,却往往忽略了它深邃的内部世界。 想象一下,你能够穿越时空,深入地球的核心,亲眼目睹那些亿万年形成的神奇景象。3D可视化技术就像一把神奇的钥匙,打开了通往地球内部的大门......
  • 水坝水流3D可视化:探索自然力量的数字奇幻之旅
    在科技的海洋中,我们不断探寻着自然界的奥秘,而3D可视化技术正是我们揭开自然之力神秘面纱的一把钥匙。今天,就让我们一起走进这个充满奇幻与真实的数字世界,感受水流之美,领悟自然之力。 水坝作为人类智慧的结晶,既是大自然的驯服者,又是生态平衡的守护者。而水流则是水坝的灵魂,是生......
  • 从静态到动态化,Python数据可视化中的Matplotlib和Seaborn
    本文分享自华为云社区《Python数据可视化大揭秘:Matplotlib和Seaborn高效应用指南》,作者:柠檬味拥抱。安装Matplotlib和Seaborn首先,确保你已经安装了Matplotlib和Seaborn库。如果没有安装,可以使用以下命令进行安装:pipinstallmatplotlibseabornMatplotlib基础Matplotlib是......
  • python数据挖掘实验一:数据分析及可视化应用
    1.导入pandas包importpandasaspd2.根据给定的原始数据集创建一个DataFrame类型对象dfdata={'id':[10001,10002,10003,10004,10005,10006,10007,10008,10009,10010],'name':['LY','CE','ZS','LS','WU','......
  • 【Python】可视化Python库的依赖关系
    这里主要用了两个库:pipdeptree和pyecharts。pipdeptree用来解析所有库的依赖关系。pyecharts用来显示依赖的网络关系。通常的方法应该是通过输入下面命令:pipdeptree--json-tree>pkg.json得到关系树文件,然后解析该文件并在pyecharts显示即可。不过我不想解析json文件了......
  • python每日可视化分析:从过去到现代数据分析的演进
    分析目标本文旨在探索数据分析发展历程中的关键时刻,包括重要人物的贡献和大事件的发生。通过对比不同年代的数据分析技术和方法,我们可以更好地理解数据分析如何成为今天决策制定不可或缺的一部分。分析步骤收集数据:搜集关于数据分析历史上重要人物和事件的信息。数据与可......
  • 8个常见的数据可视化错误以及如何避免它们
    在当今以数据驱动为主导的世界里,清晰且具有洞察力的数据可视化至关重要。然而,在创建数据可视化时很容易犯错误,这可能导致对数据的错误解读。本文将探讨一些常见的糟糕数据可视化示例,并提供如何避免这些错误的建议。本文总结了8个数据可视化的典型错误,在日常工作中我们应该尽量避......
  • 数据可视化——Matpoltlib库的使用
    Matplotlib是一个Python的2D绘图库,提供了一种绘制可视化图形的简单而有效的方式。它可以创建各种类型的图表,包括线图、散点图、直方图、饼图等,使用户能够以可视化的方式呈现数据。Matplotlib的主要作用是提供一个灵活、可定制的工具集,用于创建高质量的图形。它使得数据分析......