使用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中除法使用的注意事项
Aug 21 Python
对于Python的框架中一些会话程序的管理
Apr 20 Python
Python中实现参数类型检查的简单方法
Apr 21 Python
在Django的通用视图中处理Context的方法
Jul 21 Python
Python实现PS滤镜特效Marble Filter玻璃条纹扭曲效果示例
Jan 29 Python
python筛选出两个文件中重复行的方法
May 31 Python
win7+Python3.5下scrapy的安装方法
Jul 31 Python
python中文编码与json中文输出问题详解
Aug 24 Python
在交互式环境中执行Python程序过程详解
Jul 12 Python
PyQt5通信机制 信号与槽详解
Aug 07 Python
Django接收照片储存文件的实例代码
Mar 07 Python
flask开启多线程的具体方法
Aug 02 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
PHP获取和操作配置文件php.ini的几个函数介绍
2013/06/24 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
yii2 modal弹窗之ActiveForm ajax表单异步验证
2016/06/13 PHP
PHP进阶学习之垃圾回收机制详解
2019/06/18 PHP
Tips 带三角可关闭的文字提示
2010/10/06 Javascript
JavaScript取得鼠标绝对位置程序代码介绍
2012/09/16 Javascript
javascript:void(0)是什么意思示例介绍
2013/11/17 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
js获取网页可见区域、正文以及屏幕分辨率的高度
2014/05/15 Javascript
js 去除字符串第一位逗号的方法
2014/06/07 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
javascript多行字符串的简单实现方式
2015/05/04 Javascript
简述JavaScript中正则表达式的使用方法
2015/06/15 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
jQuery添加options点击事件并传值实例代码
2016/05/18 Javascript
jquery.validate使用详解
2016/06/02 Javascript
JavaScript中值类型和引用类型的区别
2017/02/23 Javascript
jQuery is not defined 错误原因与解决方法小结
2017/03/19 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
微信小程序表单验证错误提示效果
2017/05/19 Javascript
深入理解Angularjs中$http.post与$.post
2017/05/19 Javascript
vue项目在线上服务器访问失败原因分析
2020/08/14 Javascript
[13:38]2015国际邀请赛中国战队出征仪式
2015/05/29 DOTA
Django框架中render_to_response()函数的使用方法
2015/07/16 Python
django小技巧之html模板中调用对象属性或对象的方法
2018/11/30 Python
django ajax发送post请求的两种方法
2020/01/05 Python
pytorch1.0中torch.nn.Conv2d用法详解
2020/01/10 Python
Python连接Impala实现步骤解析
2020/08/04 Python
浅谈Selenium 控制浏览器的常用方法
2020/12/04 Python
百联网上商城:i百联
2017/01/28 全球购物
小学运动会入场式解说词
2014/02/18 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
2019教师的学习计划
2019/06/25 职场文书
Python机器学习之PCA降维算法详解
2021/05/19 Python
python中super()函数的理解与基本使用
2021/08/30 Python
python和C/C++混合编程之使用ctypes调用 C/C++的dll
2022/04/29 Python