使用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的Twisted框架编写简单的网络客户端
Apr 16 Python
Python实现批量下载文件
May 17 Python
python实现爬取图书封面
Jul 05 Python
深入浅析Python传值与传址
Jul 10 Python
Pycharm取消py脚本中SQL识别的方法
Nov 29 Python
Python基于matplotlib画箱体图检验异常值操作示例【附xls数据文件下载】
Jan 07 Python
深入浅析python3中的unicode和bytes问题
Jul 03 Python
33个Python爬虫项目实战(推荐)
Jul 08 Python
Python数据可视化实现正态分布(高斯分布)
Aug 21 Python
Python实现PyPDF2处理PDF文件的方法示例
Sep 25 Python
NumPy统计函数的实现方法
Jan 21 Python
构建高效的python requests长连接池详解
May 02 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP常用函数和常见疑难问题解答
2014/03/05 PHP
php采用file_get_contents代替使用curl实例
2014/11/07 PHP
PHP文件系统管理(实例讲解)
2017/09/19 PHP
对laravel in 查询的使用方法详解
2019/10/09 PHP
php经典趣味算法实例代码
2020/01/21 PHP
php判断数组是否为空的实例方法
2020/05/10 PHP
用JavaScript调用WebService的示例
2008/04/07 Javascript
javascript预览上传图片发现的问题的解决方法
2010/11/25 Javascript
jquery 模板的应用示例
2013/11/12 Javascript
JavaScript Math.ceil() 函数使用介绍
2013/12/11 Javascript
js鼠标滑过图片震动特效的方法
2015/02/17 Javascript
在javascript中创建对象的各种模式解析
2016/05/16 Javascript
js鼠标按键事件和键盘按键事件用法实例汇总
2016/10/03 Javascript
实例浅析js的this
2016/12/11 Javascript
Vue项目webpack打包部署到服务器的实例详解
2017/07/17 Javascript
ES6 中可以提升幸福度的小功能
2018/08/06 Javascript
微信小程序使用map组件实现路线规划功能示例
2019/01/22 Javascript
VSCode搭建React Native环境
2020/05/07 Javascript
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
VSCode下好用的Python插件及配置
2018/04/06 Python
python使用numpy读取、保存txt数据的实例
2018/10/14 Python
python面试题之列表声明实例分析
2019/07/08 Python
使用Python opencv实现视频与图片的相互转换
2019/07/08 Python
Python使用uuid库生成唯一标识ID
2020/02/12 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
Python使用windows设置定时执行脚本
2020/11/12 Python
python中pickle模块浅析
2020/12/29 Python
iPad和Surface Pro蓝牙键盘:Brydge
2018/11/10 全球购物
汽修专业学生自我鉴定
2013/11/16 职场文书
数控技术学生的自我评价
2014/02/15 职场文书
机关单位动员会主持词
2014/03/20 职场文书
综治维稳工作汇报
2014/10/27 职场文书
2016感恩母亲节校园广播稿
2015/12/17 职场文书
2016年党员承诺书范文
2016/03/24 职场文书