python 生成目录树及显示文件大小的代码


Posted in Python onJuly 23, 2009

比如

1--1

     2--1

          2

          3--1

               2

               3

     3--1

          2

          3

交错的层级关系,刚开始感觉很乱没有想明白,后来终于抓住了关键。只要算出每个层次的深度,就好办了。

我定义了一个rank,进入一个子文件夹时,让rank+1,遍历完子文件夹rank就-1。

如图充分说明了递归、遍历的顺序以及rank值变化:(丑了点。。。)
python 生成目录树及显示文件大小的代码
下面放代码:

''' 
Created on Jul 22, 2009 @author: dirful 
''' 
import os 
class dir(object): 
def __init__(self): 
self.CONST =0 
self.SPACE ="" 
self.list =[] 
def p(self,url): 
files = os.listdir(r''+url) 
for file in files: 
myfile = url + "\\"+file 
size = os.path.getsize(myfile) 
if os.path.isfile(myfile): 
self.list.append(str(self.SPACE)+"|____"+file +" "+ str(size)+"\n") 
# print str(self.SPACE)+"|____"+file +" "+ str(size) 
if os.path.isdir(myfile) : 
self.list.append(str(self.SPACE)+"|____"+file + "\n") 
#get into the sub-directory,add "| " 
self.SPACE = self.SPACE+"| " 
self.p(myfile) 
#when sub-directory of iteration is finished,reduce "| " 
self.SPACE = self.SPACE[:-5] 
return self.list 
def writeList(self,url): 
f = open(url,'w') 
f.writelines(self.list) 
print "ok" 
f.close() 

if __name__ == '__main__': 
d=dir() 
d.p("E:/eclipse") 
d.writeList("c:3.txt")

生成树如下。没有微软tree生成的好。。。。。。。

python 生成目录树及显示文件大小的代码

Python 相关文章推荐
python中requests模块的使用方法
Apr 08 Python
Python实现合并字典的方法
Jul 07 Python
举例讲解Python设计模式编程中对抽象工厂模式的运用
Mar 02 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
postman模拟访问具有Session的post请求方法
Jul 15 Python
python实现一行输入多个值和一行输出多个值的例子
Jul 16 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
Sep 29 Python
python turtle 绘制太极图的实例
Dec 18 Python
python 实现仿微信聊天时间格式化显示的代码
Apr 17 Python
Python中Cookies导出某站用户数据的方法
May 17 Python
Python的三个重要函数详解
Jan 18 Python
Python matplotlib多个子图绘制整合
Apr 13 Python
python 域名分析工具实现代码
Jul 15 #Python
python 自动提交和抓取网页
Jul 13 #Python
python self,cls,decorator的理解
Jul 13 #Python
python 解析html之BeautifulSoup
Jul 07 #Python
打印出python 当前全局变量和入口参数的所有属性
Jul 01 #Python
python 查找文件夹下所有文件 实现代码
Jul 01 #Python
python 运算符 供重载参考
Jun 11 #Python
You might like
利用递归把多维数组转为一维数组的函数
2006/10/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
linux下为php添加iconv模块的方法
2016/02/28 PHP
PHP实现chrome表单请求数据转换为接口使用的json数据
2021/03/04 PHP
javascript中运用闭包和自执行函数解决大量的全局变量问题
2010/12/30 Javascript
setTimeout和setInterval的区别你真的了解吗?
2011/03/31 Javascript
更优雅的事件触发兼容
2011/10/24 Javascript
JavaScript中匿名函数用法实例
2015/03/23 Javascript
Bootstrap基础学习
2015/06/16 Javascript
JS基于Ajax实现的网页Loading效果代码
2015/10/27 Javascript
AngularJS实现数据列表的增加、删除和上移下移等功能实例
2016/09/05 Javascript
javaScript语法总结
2016/11/25 Javascript
JavaScript实现求最大公共子串的方法
2018/02/03 Javascript
使用NestJS开发Node.js应用的方法
2018/12/03 Javascript
python解析xml文件实例分享
2013/12/04 Python
Python群发邮件实例代码
2014/01/03 Python
详解Python中的各种函数的使用
2015/05/24 Python
理解python中生成器用法
2017/12/20 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
pyCharm 实现关闭代码检查
2020/06/09 Python
浅谈keras中的目标函数和优化函数MSE用法
2020/06/10 Python
Python自动化xpath实现自动抢票抢货
2020/09/19 Python
python实现三种随机请求头方式
2021/01/05 Python
总结30个CSS3选择器
2017/04/13 HTML / CSS
如何提高SQL Server的安全性
2016/07/25 面试题
难忘的一课教学反思
2014/04/30 职场文书
期末评语大全
2014/05/04 职场文书
交通安全横幅标语
2014/10/07 职场文书
北京颐和园导游词
2015/01/30 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
2015教师个人德育工作总结
2015/07/22 职场文书
心理健康教育主题班会
2015/08/13 职场文书
诚信考试主题班会
2015/08/17 职场文书
音乐课《小猫钓鱼》教学反思
2016/02/18 职场文书
Java数据开发辅助工具Docker与普通程序使用方法
2021/09/15 Java/Android