注意:路径是自己给的,必须是真是存在的路径
1、使用递归遍历目录
import os
def getAllDir(path):
# 获取路径下的文件以及目录
listFile = os.listdir(path)
# print(listFile)
# 遍历列表listFile
for file in listFile:
# 进行路径拼接
fileDir = os.path.join(path, file)
# 如果是目录就递归
if os.path.isdir(fileDir):
# 打印目录名
print("目录",file)
getAllDir(fileDir)
else:
# 打印文件名
print("\t文件", file)
getAllDir(r"G:\Users\asus\Desktop\新建文件夹")
2、深度遍历文件(栈遍历)
import os
def stackGetAllFile(path):
# 创建空栈
stackList = []
# 进栈
stackList.append(path)
while len(stackList) > 0:
# 出栈
stackFile = stackList.pop()
# 获取当前路径列表
stackAllFile = os.listdir(stackFile)
# 遍历列表
for allFile in stackAllFile:
# 拼接绝对路径
absAllFile = os.path.join(path, allFile)
# 如果是目录就进栈
if os.path.isdir(absAllFile):
print("目录", allFile)
stackList.append(absAllFile)
else:
print("\t文件", allFile)
stackGetAllFile(r"G:\Users\asus\Desktop\新建文件夹")
3、广度遍历文件(队列遍历)
import os
import collections
def queuegetdir(path):
# 创建一个空的队列
queue = collections.deque()
# 进队
queue.append(path)
while len(queue) > 0:
# 出队
filePath = queue.popleft()
# 列举出出队路径下的所有文件以及文件名
fileList = os.listdir(filePath)
for file in fileList:
# 拼接。获取绝对路径
absFilePath = os.path.join(filePath, file)
# 如果是目录,进队
if os.path.isdir(absFilePath):
print("目录", file)
queue.append(absFilePath)
else:
print("\t文件", file)
queuegetdir(r"G:\Users\asus\Desktop\新建文件夹")