首页 > 编程 > Python > 正文

使用python生成目录树

2020-01-04 15:27:20
字体:
来源:转载
供稿:网友

这是一个使用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 

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持VEVB武林网。


注:相关教程知识阅读请移步到python教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表