使用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 27 Python
python执行等待程序直到第二天零点的方法
Apr 23 Python
python中字符串类型json操作的注意事项
May 02 Python
python 通过xml获取测试节点和属性的实例
Mar 31 Python
Python中list查询及所需时间计算操作示例
Jun 21 Python
使用python实现滑动验证码功能
Aug 05 Python
python 发送json数据操作实例分析
Oct 15 Python
Django 框架模型操作入门教程
Nov 05 Python
python 二维矩阵转三维矩阵示例
Nov 30 Python
pytorch之添加BN的实现
Jan 06 Python
pytorch 实现在一个优化器中设置多个网络参数的例子
Feb 20 Python
Python使用Kubernetes API访问集群
May 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代码
2007/03/08 PHP
Symfony数据校验方法实例分析
2015/01/26 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
jquery实现人性化的有选择性禁用鼠标右键
2014/06/30 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery动态添加与删除tr行实例代码
2016/10/18 Javascript
JavaScript中绑定事件的三种方式及去除绑定
2016/11/05 Javascript
基于 Vue 实现一个酷炫的 menu插件
2017/11/14 Javascript
vue2.0+ 从插件开发到npm发布的示例代码
2018/04/28 Javascript
js实现京东秒杀倒计时功能
2019/01/21 Javascript
解析vue、angular深度作用选择器
2019/09/11 Javascript
Python计算程序运行时间的方法
2014/12/13 Python
Android模拟器无法启动,报错:Cannot set up guest memory ‘android_arm’ Invalid argument的解决方法
2016/07/01 Python
Django压缩静态文件的实现方法详析
2018/08/26 Python
Python解决两个整数相除只得到整数部分的实例
2018/11/10 Python
详解安装mitmproxy以及遇到的坑和简单用法
2019/01/21 Python
Python使用pyserial进行串口通信的实例
2019/07/02 Python
详解python pandas 分组统计的方法
2019/07/30 Python
用python实现英文字母和相应序数转换的方法
2019/09/18 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
英国时尚家具、家居饰品及礼品商店:Graham & Green
2016/09/15 全球购物
什么是抽象
2015/12/13 面试题
大学生职业生涯规划书前言
2014/01/09 职场文书
爱情保证书范文
2014/02/01 职场文书
葬礼司仪主持词
2014/03/31 职场文书
质量保证书范本
2014/04/29 职场文书
农村党员一句话承诺
2014/05/30 职场文书
普通党员四风问题对照检查材料
2014/09/27 职场文书
2015年挂职干部工作总结
2015/05/14 职场文书
圣诞晚会主持词
2015/07/01 职场文书
班主任班级管理心得体会
2016/01/07 职场文书
经典人生语录分享:不畏将来,不念过去,笑对当下
2019/12/12 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL
使用redis实现延迟通知功能(Redis过期键通知)
2021/09/04 Redis
解析python中的jsonpath 提取器
2022/01/18 Python
python工具dtreeviz决策树可视化和模型可解释性
2022/03/03 Python