使用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中的CURL PycURL使用例子
Jun 01 Python
Python调用C/C++动态链接库的方法详解
Jul 22 Python
Python实现的简单发送邮件脚本分享
Nov 07 Python
Python3指定路径寻找符合匹配模式文件
May 22 Python
python实现二维码扫码自动登录淘宝
Dec 27 Python
Python绘制七段数码管实例代码
Dec 20 Python
python删除过期log文件操作实例解析
Jan 31 Python
python+unittest+requests实现接口自动化的方法
Nov 29 Python
使用Python函数进行模块化的实现
Nov 15 Python
在win64上使用bypy进行百度网盘文件上传功能
Jan 02 Python
pytorch对梯度进行可视化进行梯度检查教程
Feb 04 Python
Python中三维坐标空间绘制的实现
Sep 22 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+js实现异步图片上传实例分享
2014/06/02 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
Yii2.0 模态弹出框+ajax提交表单
2016/05/22 PHP
php+mysql开发中的经验与常识小结
2019/03/25 PHP
thinkphp中常用的系统常量和系统变量
2014/03/05 Javascript
JavaScript控制各种浏览器全屏模式的方法、属性和事件介绍
2014/04/03 Javascript
jQuery插件Easyui设置datagrid的pageNumber导致两次请求问题的解决方法
2016/08/06 Javascript
JavaScript省市区三级联动菜单效果
2016/09/21 Javascript
BootStrap实现带有增删改查功能的表格(DEMO详解)
2016/10/26 Javascript
jQuery得到多个值只能用取Class ,不能用取ID的方法
2016/12/04 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
详解VUE单页应用骨架屏方案
2019/01/17 Javascript
vue组件之间通信方式实例总结【8种方式】
2019/02/22 Javascript
vue实现中部导航栏布局功能
2019/07/30 Javascript
JS/jQuery实现超简单的Table表格添加,删除行功能示例
2019/07/31 jQuery
python每次处理固定个数的字符的方法总结
2013/01/29 Python
python时间日期函数与利用pandas进行时间序列处理详解
2018/03/13 Python
Python 判断图像是否读取成功的方法
2019/01/26 Python
python3 实现爬取TOP500的音乐信息并存储到mongoDB数据库中
2019/08/24 Python
python如何判断IP地址合法性
2020/04/05 Python
python中rb含义理解
2020/06/18 Python
pycharm 如何取消连按两下shift出现的全局搜索
2021/01/15 Python
THE OUTNET美国官网:国际设计师品牌折扣网站
2017/03/07 全球购物
大学生自我鉴定范文模板
2014/01/21 职场文书
设备动力科岗位职责范本
2014/02/23 职场文书
多媒体专业自我鉴定
2014/02/28 职场文书
家长对孩子的评语
2014/04/18 职场文书
区政府领导班子个人对照检查材料
2014/09/25 职场文书
防灾减灾宣传标语
2014/10/07 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
2016新年致辞
2015/08/01 职场文书
保护环境建议书作文400字
2015/09/14 职场文书
女人创业励志语录,句句蕴含能量,激发你的潜能
2019/08/20 职场文书
动漫APP软件排行榜前十名,半次元上榜,第一款由腾讯公司推出
2022/03/18 杂记
SQL Server远程连接的设置步骤(图文)
2022/03/23 SQL Server