python生成目录树(os模块用法附效果图)

发布时间:2020-04-15编辑:脚本学堂
python生成目录树的一段脚本,python os模块获取文件与子目录,生成目录树,附有效果图。

脚本思路:
通过os.listdir()列举出目录下所有的文件和子目录,如果是文件则打印输出,如果是子目录,则递归获取该子目录的文件信息。
python os模块的实例代码。

脚本:
 

复制代码 代码示例:

#!/usr/bin/env python
#coding=utf-8
# www.jb200.com

import os
import sys
 
class dir(object): 
def __init__(self): 
self.SPACE = "" 
self.list = []
self.size = 0
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 
try:
self.size += os.path.getsize(myfile) 
except Exception, e:
pass
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) + " i--" + 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(sys.argv[1]) # input directory
#d.writeList("1.txt") # write to file
#print '%s' % (''.join(d.list))
print ''.join(d.list)
print '%s total size : %d bytes' % (sys.argv[1],  d.size)
 

脚本结果(生成的目录树):
python os模块生成目录树