使用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 03 Python
Python常用知识点汇总
May 08 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
Python简单定义与使用二叉树示例
May 11 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
Jul 13 Python
Anaconda2 5.2.0安装使用图文教程
Sep 19 Python
python 读取鼠标点击坐标的实例
Dec 29 Python
很酷的python表白工具 你喜欢我吗
Apr 11 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
Django框架创建项目的方法入门教程
Nov 04 Python
多个python文件调用logging模块报错误
Feb 12 Python
Python3爬虫里关于代理的设置总结
Jul 30 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
19个超实用的PHP代码片段
2014/03/14 PHP
php查询mysql大量数据造成内存不足的解决方法
2015/03/04 PHP
php实现基于PDO的预处理示例
2017/03/28 PHP
php+Ajax处理xml与json格式数据的方法示例
2019/03/04 PHP
javascript 进度条 实现代码
2009/07/30 Javascript
JavaScript 乱码问题
2009/08/06 Javascript
JavaScript 动态添加表格行 使用模板、标记
2009/10/24 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
页面加载完成后再执行JS的jquery写法以及区别说明
2014/02/22 Javascript
JQuery点击事件回到页面顶部效果的实现代码
2016/05/24 Javascript
Vue.js每天必学之Class与样式绑定
2016/09/05 Javascript
angularJS模态框$modal实例代码
2017/05/27 Javascript
Vue-cropper 图片裁剪的基本原理及思路讲解
2018/04/17 Javascript
jQuery实现的手动拖动控制进度条效果示例【测试可用】
2018/04/18 jQuery
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
详解BootStrap表单验证中重置BootStrap-select验证提示不清除的坑
2019/09/17 Javascript
使用vuex存储用户信息到localStorage的实例
2019/11/11 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
50行代码实现贪吃蛇(具体思路及代码)
2013/04/27 Python
Python类的定义、继承及类对象使用方法简明教程
2015/05/08 Python
pyQt4实现俄罗斯方块游戏
2018/06/26 Python
python实现字符串和字典的转换
2018/09/29 Python
python+mysql实现学生信息查询系统
2019/02/21 Python
python print出共轭复数的方法详解
2019/06/25 Python
python with (as)语句实例详解
2020/02/04 Python
Python3 集合set入门基础
2020/02/10 Python
Python实现一个论文下载器的过程
2021/01/18 Python
美国环保妈妈、儿童和婴儿用品购物网站:The Tot
2019/11/24 全球购物
装潢设计专业推荐信模板
2013/11/26 职场文书
铁路工务反思材料
2014/02/07 职场文书
学习方法演讲稿
2014/05/10 职场文书
乐观自信演讲稿范文
2014/05/21 职场文书
警察群众路线对照检查材料思想汇报
2014/10/01 职场文书
干部作风纪律整顿心得体会
2016/01/23 职场文书
python 下载文件的几种方式分享
2021/04/07 Python