使用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使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
web.py 十分钟创建简易博客实现代码
Apr 22 Python
用Python写一段用户登录的程序代码
Apr 22 Python
关于django 数据库迁移(migrate)应该知道的一些事
May 27 Python
Python实现的个人所得税计算器示例
Jun 01 Python
用python实现k近邻算法的示例代码
Sep 06 Python
python自带tkinter库实现棋盘覆盖图形界面
Jul 17 Python
pytorch 实现张量tensor,图片,CPU,GPU,数组等的转换
Jan 13 Python
解决pyCharm中 module 调用失败的问题
Feb 12 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
Python requests模块安装及使用教程图解
Jun 30 Python
基于Python的EasyGUI学习实践
May 07 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 自定义错误处理函数trigger_error()
2013/03/26 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
ThinkPHP独立分组使用的注意事项
2014/11/25 PHP
php中define用法实例
2015/07/30 PHP
详细解读php的命名空间(一)
2018/02/21 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
PHP实现页面静态化深入讲解
2021/03/04 PHP
用JS剩余字数计算的代码
2008/07/03 Javascript
JavaScript OOP类与继承
2009/11/15 Javascript
JavaScript模板入门介绍
2012/09/26 Javascript
jquery的$getjson调用并获取远程的JSON字符串问题
2012/12/10 Javascript
js过滤HTML标签以及空格的思路及代码
2013/05/24 Javascript
Nodejs express框架一个工程中同时使用ejs模版和jade模版
2015/12/28 NodeJs
js严格模式总结(分享)
2016/08/22 Javascript
Vue.js双向绑定操作技巧(初级入门)
2016/12/27 Javascript
jquery 仿锚点跳转到页面指定位置的实例
2017/02/14 Javascript
关于vue-router的beforeEach无限循环的问题解决
2017/09/09 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
详解JavaScript中精度失准问题及解决方法
2020/02/04 Javascript
微信小程序开发(二):页面跳转并传参操作示例
2020/06/01 Javascript
浅析Python中signal包的使用
2015/11/13 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
Django 连接sql server数据库的方法
2018/06/30 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
Linux下Python安装完成后使用pip命令的详细教程
2018/11/22 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Django模型中字段属性choice使用说明
2020/03/30 Python
使用matlab 判断两个矩阵是否相等的实例
2020/05/11 Python
浅谈pandas dataframe对除数是零的处理
2020/07/20 Python
python实现企业微信定时发送文本消息的实例代码
2020/11/25 Python
巴西葡萄酒商店:Divvino
2020/02/22 全球购物
《小儿垂钓》教学反思
2014/02/23 职场文书
教师一帮一活动总结
2014/07/08 职场文书
食品科学与工程专业毕业生求职信范文
2014/07/21 职场文书
2015毕业生实习工作总结
2014/12/12 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript