# coding:utf-8
import os
allFileNum = 0
# 打印一个目录下的所有文件夹和文件
def printPath(level, path):
global allFileNum # 使用全局变量allFileNum
# 存放当前目录下所有文件夹的列表
dirList = []
# 存放当前目录下所有文件的列表
fileList = []
# 返回一个列表,其中包含该path目录下的所有文件名和文件夹名
files = os.listdir(path)
# 添加目录级别,递归打印文件夹时使用
dirList.append(str(level))
for f in files:
if os.path.isdir(path + '/' + f): # 判断是不是文件夹
if f[0] != '.': # 排除隐藏文件夹。因为隐藏文件夹过多
dirList.append(f) # 添加非隐藏文件夹
if os.path.isfile(path + '/' + f): # 判断是不是文件
fileList.append(f) # 添加文件
i_dl = 0 # 当一个标志使用,文件夹列表第一个级别不打印
for dl in dirList:
if i_dl == 0:
i_dl = i_dl + 1
else:
print('-' * (int(dirList[0])), dl) # 打印至控制台,不是第一个的目录
printPath((int(dirList[0]) + 1), path + '/' + dl) # 打印目录下的所有文件夹和文件,目录级别+1
for fl in fileList:
print('-' * (int(dirList[0])), fl) # 打印文件
allFileNum = allFileNum + 1 # 计算该目录下有多少个文件
if __name__ == '__main__':
printPath(1, "E:/Desktop/提货单_files")
print('总文件数 =', allFileNum)