python扫描目录
# -*- coding: utf-8 -*-
'''''
仿Linux命令tree生成树形目录结构,
并汇总当前目录下文件总算
'''
from sys import argv
import os
def fileCntIn(currPath):
'''''汇总当前目录下文件数'''
return sum([len(files) for root, dirs, files in os.walk(currPath)])
def dirsTree(startPath):
'''''树形打印出目录结构'''
for root, dirs, files in os.walk(startPath):
#获取当前目录下文件数
fileCount = fileCntIn(root)
#获取当前目录相对输入目录的层级关系,整数类型
level = root.replace(startPath, '').count(os.sep)
#树形结构显示关键语句
#根据目录的层级关系,重复显示'| '间隔符,
#第一层 '| '
#第二层 '| | '
#第三层 '| | | '
#依此类推...
#在每一层结束时,合并输出 '|____'
indent = '| ' * 1 * level + '|____'
print('%s%s -r:%s' % (indent, os.path.split(root)[1], fileCount))
for file in files:
indent = '| ' * 1 * (level + 1) + '|____'
print('%s%s' % (indent, file))
if __name__ == '__main__':
# path = argv[1]
path = "/Users"
dirsTree(path)