import os, sys, math path = os.getcwd() root = os.listdir(path) img = [ ' ', '│ ', '├── ', '└── ' ] Color = {'default': '\033[0m', 'red': '\033[31m', 'green': '\033[32m', 'grey': '\033[36m'} counts = {'directories': 0, 'files': 0} def maxf(level): count=0 while level: level = math.floor(level/4) count += 1 return count def flo(level): pic = '' while level: lev = level % 4 pic += img[lev] level = math.floor(level/4) return pic def draw(floor, element, isDir): color = 'default' if isDir: color = 'grey' counts['directories'] += 1 else: counts['files'] += 1 print(floor + Color[color] + str(element) + Color['default']) def ele(i, level, dire): i = list(filter(lambda x:x[0] != '.', i)) t = pow(4, maxf(level) - 1) for x in range(len(i)): if x < len(i) - 1: Dire = os.path.join(dire, i[x]) draw(flo(level), i[x], os.path.isdir(Dire)) if os.path.isdir(Dire): dirlist = os.listdir(Dire) ele(dirlist, level+t*4+3*t, Dire) else: Dire = os.path.join(dire, i[x]) draw(flo(level+t), i[x], os.path.isdir(Dire)) if os.path.isdir(Dire): dirlist = os.listdir(Dire) ele(dirlist, level+t*4+2*t, Dire) print('.') ele(root, 2, '.') print() print(counts['directories'],'directories,',counts['files'],'files')
|