当前位置:   article > 正文

用python+graphviz/networkx画目录结构树状图_networkx画树状图

networkx画树状图

想着用python绘制某目录的树状图,一开始想到了用grapgviz,因为去年离职的时候整理文档,用graphviz画过代码调用结构图。graphviz有一门自己的语言DOT,dot很简单,加点加边设置属性就这点东西,而且有python接口。

我在ubuntu下,先要安装graphviz软件,官网有deb包,然后python安装pygraphviz模块。

目标功能是输入一个路径,输出该路径下的目录结构以及文件和文件夹的大小

  1. # -*- coding:utf-8 -*-
  2. import pygraphviz as pgv
  3. import os
  4. from os.path import getsize, join
  5. import sys
  6. import Queue
  7. reload(sys)
  8. sys.setdefaultencoding('utf8')
  9. class DrawDirectorTree():
  10. """
  11. 绘制目录结构图,用树的形式
  12. """
  13. @classmethod
  14. def getdirsize(cls, dir):
  15. """
  16. 获取文件夹大小
  17. :param dir:
  18. :return: 返回尺寸
  19. """
  20. size = 0L
  21. for root, dirs, files in os.walk(dir):
  22. size += sum([getsize(join(root, name)) for name in files])
  23. return size
  24. @classmethod
  25. def draw_director_tree(cls, input_path):
  26. """
  27. 深度遍历一个目录,绘制目录树形图
  28. :param input_path: 目标目录
  29. :return:
  30. """
  31. if (not os.path.exists(input_path)) or (not os.path.isdir(input_path)):
  32. print "Input_path Error!"
  33. return None
  34. # 用队列做BFS
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/169576
推荐阅读
相关标签
  

闽ICP备14008679号