使用python生成目录树


Posted in Python onMarch 29, 2018

这是一个使用Python生成文件、目录树的程序,其中遇到一个问题是:如何确定某个目录下的某一文件是最后一个遍历的文件。因为最后一个遍历的文件前应添加"└─",非最后一个文件前添加"├─"。看了Python的API文档没有找到相关的系统函数。现在做法是:先统计出某个目录下的文件个数,在遍历目录时,当个数相等时,就可以确定该目录遍历结束。

# encoding: utf-8  
  
import os   
class dir(object):   
  def __init__(self):   
    self.SPACE = ""   
    self.list = []  
    
  def getCount(self, url):  
    files = os.listdir(url)  
    count = 0;  
    for file in files:  
      myfile = url + "//" + file  
      if os.path.isfile(myfile):  
        count = count + 1  
    return count  
  def getDirList(self, url):   
    files = os.listdir(url)   
    fileNum = self.getCount(url)  
    tmpNum = 0  
    for file in files:   
      myfile = url + "//" + file   
      size = os.path.getsize(myfile)   
      if os.path.isfile(myfile):   
        tmpNum = tmpNum +1  
        if (tmpNum != fileNum):  
          self.list.append(str(self.SPACE) + "├─" + file + "/n")  
        else:  
          self.list.append(str(self.SPACE) + "└─" + file + "/n")  
      if os.path.isdir(myfile):   
        self.list.append(str(self.SPACE) + "├─" + file + "/n")   
        # change into sub directory  
        self.SPACE = self.SPACE + "│ "   
        self.getDirList(myfile)   
        # if iterator of sub directory is finished, reduce "│ "   
        self.SPACE = self.SPACE[:-4]   
    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.getDirList("c:/windows") # input directory  
  d.writeList("c:/1.txt") # write to file

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python模拟登录百度代码分享(获取百度贴吧等级)
Dec 27 Python
python fabric实现远程操作和部署示例
Mar 25 Python
python计算圆周长、面积、球体体积并画出圆
Apr 08 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python面向对象class类属性及子类用法分析
Feb 02 Python
Pandas Shift函数的基础入门学习笔记
Nov 16 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
介绍一款python类型检查工具pyright(推荐)
Jul 03 Python
Python随机函数库random的使用方法详解
Aug 21 Python
python同步两个文件夹下的内容
Aug 29 Python
pytorch 自定义参数不更新方式
Jan 06 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 Python
python实现树形打印目录结构
Mar 29 #Python
Python基础教程之利用期物处理并发
Mar 29 #Python
Windows下安装Django框架的方法简明教程
Mar 28 #Python
Python实现的FTP通信客户端与服务器端功能示例
Mar 28 #Python
Python实现发送与接收邮件的方法详解
Mar 28 #Python
Python实现线程状态监测简单示例
Mar 28 #Python
python实现朴素贝叶斯分类器
Mar 28 #Python
You might like
dedecms系统常用术语汇总
2007/04/03 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
php数组函数序列之array_splice() - 在数组任意位置插入元素
2011/11/07 PHP
PHP重定向的3种方式
2013/03/07 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
PHP基于数组实现的分页函数实例
2014/08/20 PHP
PHP查询并删除数据库多列重复数据的方法(利用数组函数实现)
2016/02/23 PHP
PHP实现的无限分类类库定义与用法示例【基于thinkPHP】
2018/08/06 PHP
浅谈laravel数据库查询返回的数据形式
2019/10/21 PHP
表单(FORM)的一些实用效果代码
2007/03/25 Javascript
javascript DOM编程实例(智播客学习)
2009/11/23 Javascript
学习面向对象之面向对象的术语
2010/11/30 Javascript
表头固定(利用jquery实现原理介绍)
2012/11/08 Javascript
jquery实现倒计时功能
2015/12/28 Javascript
深入浅析JavaScript系列(13):This? Yes,this!
2016/01/05 Javascript
微信小程序 Storage API实例详解
2016/10/02 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
2016/11/10 Javascript
微信小程序 传值取值的几种方法总结
2017/01/16 Javascript
javaScript动态添加Li元素的实例
2018/02/24 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
2018/04/04 Javascript
node中的密码安全(加密)
2018/09/17 Javascript
JsonServer安装及启动过程图解
2020/02/28 Javascript
[28:28]Ti4 冒泡赛第二天NEWBEE vs NaVi 2
2014/07/15 DOTA
python二叉树的实现实例
2013/11/21 Python
python对html代码进行escape编码的方法
2015/05/04 Python
python 用for循环实现1~n求和的实例
2019/02/01 Python
python数据预处理 :数据抽样解析
2020/02/24 Python
html5+css3气泡组件的实现
2014/11/21 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
声明struct x1 { . . . }; 和typedef struct { . . . }x2;有什么不同
2012/06/02 面试题
展会邀请函范文
2014/01/26 职场文书
项目经理聘任书
2014/03/29 职场文书
英语三分钟演讲稿
2014/08/19 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
优秀护士事迹材料
2014/12/25 职场文书
Java+swing实现抖音上的表白程序详解
2022/06/25 Java/Android