使用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实现针对给定字符串寻找最长非重复子串的方法
Apr 21 Python
mac 安装python网络请求包requests方法
Jun 13 Python
Python使用while循环花式打印乘法表
Jan 28 Python
Python登录系统界面实现详解
Jun 25 Python
Python绘图实现显示中文
Dec 04 Python
Python pygame绘制文字制作滚动文字过程解析
Dec 12 Python
python获取引用对象的个数方式
Dec 20 Python
安装完Python包然后找不到模块的解决步骤
Feb 13 Python
Python性能分析工具py-spy原理用法解析
Jul 27 Python
Pandas中DataFrame交换列顺序的方法实现
Dec 14 Python
Python 可视化神器Plotly详解
Dec 26 Python
Python如何使用logging为Flask增加logid
Mar 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
php过滤危险html代码
2008/08/18 PHP
PHP中PDO的错误处理
2011/09/04 PHP
jQuery表格行换色的三种实现方法
2011/06/27 Javascript
javascript 随机展示头像实现代码
2011/12/06 Javascript
{}与function(){}选用空对象{}来存放keyValue
2012/05/23 Javascript
『jQuery』名称冲突使用noConflict方法解决
2013/04/22 Javascript
深入分析Javascript跨域问题
2015/04/17 Javascript
基于JavaScript代码实现微信扫一扫下载APP
2015/12/30 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
Three.js中网格对象MESH的属性与方法详解
2017/09/27 Javascript
Vue中render方法的使用详解
2018/01/26 Javascript
Angular网络请求的封装方法
2018/05/22 Javascript
Vue表单demo v-model双向绑定问题
2018/06/29 Javascript
JavaScript简单实现关键字文本搜索高亮显示功能示例
2018/07/25 Javascript
vue 项目地址去掉 #的方法
2018/10/20 Javascript
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
nodejs中各种加密算法的实现详解
2019/07/11 NodeJs
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
[01:25:33]完美世界DOTA2联赛PWL S3 INK ICE vs Magma 第二场 12.20
2020/12/23 DOTA
Python实现基于多线程、多用户的FTP服务器与客户端功能完整实例
2017/08/18 Python
Python探索之ModelForm代码详解
2017/10/26 Python
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
6行Python代码实现进度条效果(Progress、tqdm、alive-progress​​​​​​​和PySimpleGUI库)
2020/01/06 Python
PYcharm 激活方法(推荐)
2020/03/23 Python
简单了解Python字典copy与赋值的区别
2020/09/16 Python
《走一步再走一步》教学反思
2014/02/15 职场文书
法律进企业活动方案
2014/03/04 职场文书
寒假家长评语大全
2014/04/16 职场文书
老干部工作汇报材料
2014/10/28 职场文书
Oracle笔记
2021/04/05 Oracle
快速学习Oracle触发器和游标
2021/06/30 Oracle
Python数组变形的几种实现方法
2022/05/30 Python
mysqldump进行数据备份详解
2022/07/15 MySQL