python 实现生成目录树及显示文件大小
2009-07-23 20:30
741 查看
没啥技术含量,大家都说没用,只不过算法还有点意思。自己憋出来的,不知道是不是跟别人的一样。做递归得到子文件夹以及文件并不难,但是能够打印出树形,层次关系展示出来,有些难度。
比如
1--1
2--1
2
3--1
2
3
3--1
2
3
交错的层级关系,刚开始感觉很乱没有想明白,后来终于抓住了关键。只要算出每个层次的深度,就好办了。
我定义了一个rank,进入一个子文件夹时,让rank+1,遍历完子文件夹rank就-1。
如图充分说明了递归、遍历的顺序以及rank值变化:(丑了点。。。)
下面放代码:
生成树如下。没有微软tree生成的好。。。。。。。
比如
1--1
2--1
2
3--1
2
3
3--1
2
3
交错的层级关系,刚开始感觉很乱没有想明白,后来终于抓住了关键。只要算出每个层次的深度,就好办了。
我定义了一个rank,进入一个子文件夹时,让rank+1,遍历完子文件夹rank就-1。
如图充分说明了递归、遍历的顺序以及rank值变化:(丑了点。。。)
下面放代码:
''' 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 生成目录树及显示文件大小的代码
- Python 实现指定目录下 删除指定大小的文件
- python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小 本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏。 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小
- python实现文件下载(包含进度条显示,文件大小显示,下载速度显示)
- Python3 实现随机生成一组不重复数并按行写入文件
- win32控制台下实现查找并显示指定目录下的指定类型文件
- python的zipfile实现文件目录解压缩
- 生成目录结构算法的bash, perl和python实现
- 基于Python实现文件大小输出
- Python实现批量更换指定目录下文件扩展名的方法
- Python中的文件和目录操作实现代码
- python实现文件和目录的复制和删除
- Linux下运行Python脚本显示“: 没有那个文件或目录”问题
- Python实现将目录中TXT合并成一个大TXT文件的方法
- python设计实现遍历目录与子目录,抓取.py文件
- PHP实现格式化文件数据大小显示的方法
- 在python中实现数据生成饼图,并且饼图要显示在HTML页面中
- Linux下运行Python脚本显示“: 没有那个文件或目录”问题