赞
踩
想着用python绘制某目录的树状图,一开始想到了用grapgviz,因为去年离职的时候整理文档,用graphviz画过代码调用结构图。graphviz有一门自己的语言DOT,dot很简单,加点加边设置属性就这点东西,而且有python接口。
我在ubuntu下,先要安装graphviz软件,官网有deb包,然后python安装pygraphviz模块。
目标功能是输入一个路径,输出该路径下的目录结构以及文件和文件夹的大小
- # -*- coding:utf-8 -*-
- import pygraphviz as pgv
- import os
- from os.path import getsize, join
- import sys
- import Queue
-
- reload(sys)
- sys.setdefaultencoding('utf8')
-
-
- class DrawDirectorTree():
- """
- 绘制目录结构图,用树的形式
- """
-
- @classmethod
- def getdirsize(cls, dir):
- """
- 获取文件夹大小
- :param dir:
- :return: 返回尺寸
- """
- size = 0L
-
- for root, dirs, files in os.walk(dir):
- size += sum([getsize(join(root, name)) for name in files])
-
- return size
-
- @classmethod
- def draw_director_tree(cls, input_path):
- """
- 深度遍历一个目录,绘制目录树形图
- :param input_path: 目标目录
- :return:
- """
- if (not os.path.exists(input_path)) or (not os.path.isdir(input_path)):
- print "Input_path Error!"
- return None
- # 用队列做BFS
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。