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 动态获取当前运行的类名和函数名的方法
Apr 15 Python
Python中Random和Math模块学习笔记
May 18 Python
Python中使用asyncio 封装文件读写
Sep 11 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
Aug 24 Python
Python3实现的Mysql数据库操作封装类
Jun 06 Python
Python爬虫实现“盗取”微信好友信息的方法分析
Sep 16 Python
pytorch torch.expand和torch.repeat的区别详解
Nov 05 Python
Python3之外部文件调用Django程序操作model等文件实现方式
Apr 07 Python
python2.7使用scapy发送syn实例
May 05 Python
python 实现分组求和与分组累加求和代码
May 18 Python
python如何删除文件、目录
Jun 23 Python
超级实用的8个Python列表技巧
Aug 24 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
fsockopen pfsockopen函数被禁用,SMTP发送邮件不正常的解决方法
2015/09/20 PHP
php parse_str() 函数的定义和用法
2016/05/23 PHP
php微信浏览器分享设置以及回调详解
2016/08/01 PHP
Laravel5.1框架注册中间件的三种场景详解
2019/07/09 PHP
Laravel如何实现适合Api的异常处理响应格式
2020/06/14 PHP
javascript不同页面传值的改进版
2008/09/30 Javascript
js压缩工具 yuicompressor 使用教程
2010/03/31 Javascript
实测jquery data()如何存值
2013/08/18 Javascript
Web程序员必备的7个JavaScript函数
2016/06/14 Javascript
jquery  实现轮播图详解及实例代码
2016/10/12 Javascript
基于jQuery实现表格的排序
2016/12/02 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
JS和canvas实现俄罗斯方块
2017/03/14 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
javascript如何用递归写一个简单的树形结构示例
2017/09/06 Javascript
Vue.js与 ASP.NET Core 服务端渲染功能整合
2017/11/16 Javascript
Vue精简版风格指南(推荐)
2018/01/30 Javascript
使用vue脚手架(vue-cli)搭建一个项目详解
2019/05/09 Javascript
详解小程序如何改变onLoad的执行时机
2019/11/01 Javascript
js 执行上下文和作用域的相关总结
2021/02/08 Javascript
[13:55]Newbee vs Team Spirit
2018/06/07 DOTA
PyMongo安装使用笔记
2015/04/27 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
PyCharm搭建Spark开发环境的实现步骤
2019/09/05 Python
Django如何批量创建Model
2020/09/01 Python
自荐信结尾
2013/10/27 职场文书
企业宣传工作方案
2014/06/02 职场文书
企业领导班子四风对照检查材料
2014/09/27 职场文书
大二学生自我检讨书
2014/10/23 职场文书
党的群众路线教育实践活动领导班子整改措施
2014/10/28 职场文书
爱心捐助活动总结
2015/05/09 职场文书
2019秋季运动会口号
2019/06/25 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP
Python 装饰器(decorator)常用的创建方式及解析
2022/04/24 Python
关于的python五子棋的算法
2022/05/02 Python
前端框架ECharts dataset对数据可视化的高级管理
2022/12/24 Javascript