使用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读写excel的方法
Nov 18 Python
Python代码调试的几种方法总结
Apr 15 Python
python中循环语句while用法实例
May 16 Python
Python实现基于TCP UDP协议的IPv4 IPv6模式客户端和服务端功能示例
Mar 22 Python
python批量复制图片到另一个文件夹
Sep 17 Python
python requests证书问题解决
Sep 05 Python
Django 请求Request的具体使用方法
Nov 11 Python
pycharm的python_stubs问题
Apr 08 Python
如何使用python的ctypes调用医保中心的dll动态库下载医保中心的账单
May 24 Python
完美解决keras保存好的model不能成功加载问题
Jun 11 Python
Python爬虫定时计划任务的几种常见方法(推荐)
Jan 15 Python
Django+Django-Celery+Celery的整合实战
Jan 20 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遍历某个目录下的所有文件和子文件夹的实现代码
2013/06/28 PHP
Yii 快速,安全,专业的PHP框架
2014/09/03 PHP
smarty中js的调用方法示例
2014/10/27 PHP
php实现购物车产品删除功能(2)
2020/07/23 PHP
详解如何在云服务器上部署Laravel
2017/06/30 PHP
IE和Firefox在JavaScript应用中的兼容性探讨
2008/04/01 Javascript
JS下高效拼装字符串的几种方法比较与测试代码
2010/04/15 Javascript
JavaScript高级程序设计(第3版)学习笔记13 ECMAScript5新特性
2012/10/11 Javascript
jquery实现每个数字上都带进度条的幻灯片
2013/02/20 Javascript
在JavaScript中实现类的方式探讨
2013/08/28 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
轮播图组件js代码
2016/08/08 Javascript
基于js中的存储键值对以及注意事项介绍
2018/03/30 Javascript
javascript实现遮罩层动态效果实例
2019/05/14 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
微信分享invalid signature签名错误踩过的坑
2020/04/11 Javascript
[28:48]《真视界》- 2017年国际邀请赛
2017/09/27 DOTA
[45:15]Optic vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
python pickle 和 shelve模块的用法
2013/09/16 Python
Python面向对象编程之继承与多态详解
2018/01/16 Python
使用Python来做一个屏幕录制工具的操作代码
2020/01/18 Python
Python 判断时间是否在时间区间内的实例
2020/05/16 Python
Python logging模块写入中文出现乱码
2020/05/21 Python
Python3 socket即时通讯脚本实现代码实例(threading多线程)
2020/06/01 Python
Python 列表反转显示的四种方法
2020/11/16 Python
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
美国Curacao百货连锁店网站:iCuracao.com
2019/07/20 全球购物
中专生自荐信
2013/10/12 职场文书
优秀家长事迹材料
2014/05/17 职场文书
大学生志愿者活动总结
2014/06/27 职场文书
正风肃纪剖析材料范文
2014/10/10 职场文书
2014年店长工作总结
2014/11/17 职场文书
Html5页面播放M4a音频文件
2021/03/30 HTML / CSS
8个JS的reduce使用实例和reduce操作方式
2021/10/05 Javascript
Win11怎么进入安全模式?Windows 11进入安全模式的方法
2021/11/21 数码科技
java协程框架quasar和kotlin中的协程对比分析
2022/02/24 Java/Android