使用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中正则表达式的用法实例汇总
Aug 18 Python
Python StringIO模块实现在内存缓冲区中读写数据
Apr 08 Python
python版本单链表实现代码
Sep 28 Python
python 把列表转化为字符串的方法
Oct 23 Python
Python3 log10()函数简单用法
Feb 19 Python
set在python里的含义和用法
Jun 24 Python
flask框架自定义过滤器示例【markdown文件读取和展示功能】
Nov 08 Python
VSCode中自动为Python文件添加头部注释
Nov 14 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
Mar 28 Python
PyTorch-GPU加速实例
Jun 23 Python
Python 在局部变量域中执行代码
Aug 07 Python
python利用while求100内的整数和方式
Nov 07 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
将数字格式的计算结果转为汉字格式
2006/10/09 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
ThinkPHP模板比较标签用法详解
2014/06/30 PHP
PHP6新特性分析
2016/03/03 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
PHP实现通过文本文件统计页面访问量功能示例
2019/02/13 PHP
解决 FireFox 下[使用event很麻烦] 的问题.
2006/08/22 Javascript
JavaScript与Image加载事件(onload)、加载状态(complete)
2011/02/14 Javascript
jquery实现textarea输入字符控制(仿微博输入控制字符)
2013/04/26 Javascript
JavaSript中变量的作用域闭包的深入理解
2014/05/12 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
jquery选择器简述
2015/08/31 Javascript
微信小程序开发之麦克风动画 帧动画 放大 淡出
2017/04/18 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
vue2.0 下拉框默认标题设置方法
2018/08/22 Javascript
bootstrap table表格插件之服务器端分页实例代码
2018/09/12 Javascript
详解vue开发中调用微信jssdk的问题
2019/04/16 Javascript
Vue 实现从小到大的横向滑动效果详解
2019/10/16 Javascript
Pyramid将models.py文件的内容分布到多个文件的方法
2013/11/27 Python
Python写的Tkinter程序屏幕居中方法
2015/03/10 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
Tensorflow 训练自己的数据集将数据直接导入到内存
2018/06/19 Python
基于python生成器封装的协程类
2019/03/20 Python
Python+OpenCV+pyQt5录制双目摄像头视频的实例
2019/06/28 Python
python关于矩阵重复赋值覆盖问题的解决方法
2019/07/19 Python
wxPython:python首选的GUI库实例分享
2019/10/05 Python
python 多维高斯分布数据生成方式
2019/12/09 Python
python datetime处理时间小结
2020/04/16 Python
运动会通讯稿400字
2014/01/28 职场文书
一月红领巾广播稿
2014/02/11 职场文书
走进敬老院活动总结
2014/07/10 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
2015人事行政工作总结范文
2015/05/21 职场文书
创业计划书介绍
2019/04/24 职场文书
vue @ ~ 相对路径 路径别名设置方式
2022/06/05 Vue.js