python的遍历模式

Posted mumu1

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python的遍历模式相关的知识,希望对你有一定的参考价值。

python的遍历在程序中很重要,详细了解一下遍历模式,可以应用于任务分发,数据的读写中。

python的 递归遍历目录:

import os

def getAllDirRE(path, sp = ""):
#得到当前目录下所有的文件
filesList = os.listdir(path)
#处理每一个文件
sp += " "
for fileName in filesList:
#判断是否是路径(用绝对路径)
fileAbsPath = os.path.join(path, fileName)
if os.path.isdir(fileAbsPath):
print(sp + "目录:", fileName)
#递归调用
getAllDirRE(fileAbsPath, sp)
else:
print(sp + "普通文件:", fileName)

getAllDirRE(r"C:UsersxlgDesktopPython-1704day09 empdir")


python栈模拟递归遍历目录(深度遍历):
import os

def getAllDirDE(path):
stack = []
stack.append(path)

#处理栈,当栈为空的时候结束循环
while len(stack) != 0:
#从栈里取出数据
#[]
dirPath = stack.pop()
#print(dirPath)
#目录下所有文件
filesList = os.listdir(dirPath)
#print(filesList)
#处理每一个文件,如果是普通文件则打印出来,如果是目录则将该目录的地址压栈
for fileName in filesList:
fileAbsPath = os.path.join(dirPath, fileName)
if os.path.isdir(fileAbsPath):
#是目录就压栈
print("目录:" + fileName)
stack.append(fileAbsPath)
#["B", "E", "F"]
else:
#打印普通文件
print("普通:" + fileName)

getAllDirDE(r"C:UsersxlgDesktopPython-1704day09 empdir")


python的广度遍历目录(队列):
import os
import collections

def getAllDirQU(path):
queue = collections.deque()
#进队
queue.append(path)
while len(queue) != 0:
#出队数据
dirPath = queue.popleft()
#找出所有的文件
filesList = os.listdir(dirPath)

for fileName in filesList:
#绝对路径
fileAbsPath = os.path.join(dirPath, fileName)
#判断是否是目录,是目录就进队,不是就打印
if os.path.isdir(fileAbsPath):
print("目录:" + fileName)
queue.append(fileAbsPath)
else:
print("普通文件:" + fileName)

getAllDirQU(r"C:UsersxlgDesktopPython-1704day09 empdir")
 
 

以上是关于python的遍历模式的主要内容,如果未能解决你的问题,请参考以下文章

python的遍历模式

用于从 cloudkit 检索单列的代码模式/片段

python-迭代器模式

常用python日期日志获取内容循环的代码片段

Python 3 函数循环遍历 pandas 数据框以更改模式

python 有用的Python代码片段