使用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打印scrapy蜘蛛抓取树结构的方法
Apr 08 Python
Python 中urls.py:URL dispatcher(路由配置文件)详解
Mar 24 Python
Python多进程并发与多线程并发编程实例总结
Feb 08 Python
在Pycharm中设置默认自动换行的方法
Jan 16 Python
Python函数定义及传参方式详解(4种)
Mar 18 Python
python开发游戏的前期准备
May 05 Python
Python中一个for循环循环多个变量的示例
Jul 16 Python
python 画3维轨迹图并进行比较的实例
Dec 06 Python
python实现全排列代码(回溯、深度优先搜索)
Feb 26 Python
Pycharm打开已有项目配置python环境的方法
Jul 03 Python
Django crontab定时任务模块操作方法解析
Sep 10 Python
Pytorch 使用tensor特定条件判断索引
Apr 08 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网站在线人数统计
2008/04/09 PHP
PHP程序61条面向对象分析设计的经验小结
2008/11/12 PHP
php 团购折扣计算公式
2011/11/24 PHP
PHP goto语句简介和使用实例
2014/03/11 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
CentOS7.0下安装PHP5.6.30服务的教程详解
2018/09/29 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
将CKfinder整合进CKEditor3.0的新方法
2010/01/10 Javascript
使用jQuery实现dropdownlist的联动效果(sharepoint 2007)
2011/03/30 Javascript
js function定义函数的几种不错方法
2014/02/27 Javascript
JavaScript移除数组内重复元素的方法
2015/03/18 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
jQuery实现遮罩层登录对话框
2016/12/29 Javascript
JavaScript中的一些隐式转换和总结(推荐)
2017/12/22 Javascript
web3.js增加eth.getRawTransactionByHash(txhash)方法步骤
2018/03/15 Javascript
基于VUE实现的九宫格抽奖功能
2018/09/30 Javascript
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
手把手教你写一个微信小程序(推荐)
2018/10/17 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python多进程控制学习小结
2018/10/31 Python
Python学习笔记之lambda表达式用法详解
2019/08/08 Python
Django ORM多对多查询方法(自定义第三张表&ManyToManyField)
2019/08/09 Python
Python reques接口测试框架实现代码
2020/07/28 Python
CSS3 Flexbox中flex-shrink属性的用法示例介绍
2013/12/30 HTML / CSS
Draper James官网:知名演员瑞茜·威瑟斯彭所创品牌
2017/10/25 全球购物
小学教研工作制度
2014/01/15 职场文书
销售内勤岗位职责
2014/04/15 职场文书
农业开发项目建议书
2014/05/16 职场文书
五四青年节优秀演讲稿范文
2014/05/28 职场文书
国际政治学专业推荐信
2014/09/26 职场文书
小学开学典礼新闻稿
2015/07/17 职场文书
如何撰写出一份完美的商业计划书?
2019/07/12 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
比较几种Redis集群方案
2021/06/21 Redis
关于HTML编码导致的乱码问题
2021/09/04 HTML / CSS