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

想着用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
      
  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值