使用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中的floor()方法
May 15 Python
Python3读取文件常用方法实例分析
May 22 Python
深入理解Python中各种方法的运作原理
Jun 15 Python
Python验证码识别的方法
Jul 10 Python
Python+Opencv识别两张相似图片
Mar 23 Python
图文详解WinPE下安装Python
May 17 Python
利用python为运维人员写一个监控脚本
Mar 25 Python
Python学习小技巧总结
Jun 10 Python
解决.ui文件生成的.py文件运行不出现界面的方法
Jun 19 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
Python matplotlib修改默认字体的操作
Mar 05 Python
Python实现手势识别
Oct 21 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
Get或Post提交值的非法数据处理
2006/10/09 PHP
使用数据库保存session的方法
2006/10/09 PHP
某大型网络公司应聘时的笔试题目附答案
2008/03/27 PHP
php设计模式之简单工厂模式详解
2014/09/04 PHP
nodejs中exports与module.exports的区别详细介绍
2013/01/14 NodeJs
js将long日期格式转换为标准日期格式实现思路
2013/04/07 Javascript
js 固定悬浮效果实现思路代码
2013/08/02 Javascript
js实现网页自动刷新可制作节日倒计时效果
2014/05/27 Javascript
jQuery获取选中内容及设置元素属性的方法
2014/07/09 Javascript
使用jquery插件qrcode生成二维码
2015/10/22 Javascript
解决URL地址中的中文乱码问题的办法
2017/02/10 Javascript
jQuery排序插件tableSorter使用方法
2017/02/10 Javascript
js输入框使用正则表达式校验输入内容的实例
2017/02/12 Javascript
利用nodejs监控文件变化并使用sftp上传到服务器
2017/02/18 NodeJs
Vue中使用vux配置代码详解
2018/09/16 Javascript
解决IOS端微信H5页面软键盘弹起后页面下方留白的问题
2019/06/05 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
2020/04/25 Javascript
Python快速排序算法实例分析
2017/11/29 Python
Python实现字典的遍历与排序功能示例
2017/12/23 Python
python实现xlsx文件分析详解
2018/01/02 Python
python实现随机调用一个浏览器打开网页
2018/04/21 Python
python2与python3中关于对NaN类型数据的判断和转换方法
2018/10/30 Python
python交换两个变量的值方法
2019/01/12 Python
Pythony运维入门之Socket网络编程详解
2019/04/15 Python
pyqt5与matplotlib的完美结合实例
2019/06/21 Python
Python字符串对象实现原理详解
2019/07/01 Python
python如何统计代码运行的时长
2019/07/24 Python
keras slice layer 层实现方式
2020/06/11 Python
AmazeUI 加载进度条的实现示例
2020/08/20 HTML / CSS
NBA德国官方网上商店:NBA Store德国
2018/04/13 全球购物
俄罗斯鲜花递送:AMF
2020/04/24 全球购物
师范生实习个人的自我评价
2013/09/28 职场文书
机电一体化大学生求职信
2013/11/08 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
三方合作意向书范本
2015/05/09 职场文书
mysql中如何用命令创建联合唯一索引
2022/04/20 MySQL