Python生成目录树实现代码(图)

发布时间:2019-10-29编辑:脚本学堂
本文介绍了一例python生成目录树的代码,有关python 目录树生成的实现方法,有需要的朋友参考下。

使用python生成文件、目录树的程序。
问题:如何确定某个目录下的某一文件是最后一个遍历的文件。
因为最后一个遍历的文件前应添加"└─",非最后一个文件前添加"├─"。

看了Python的API文档没有找到相关的系统函数。
本例的做法:先统计出某个目录下的文件个数,在遍历目录时,当个数相等时,即可确定该目录遍历结束。

代码:
 

复制代码 代码示例:
#!/usr/bin/python
# www.jb200.com
# 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生成目录树