本文实例讲述了Python实现的栈,队列,文件目录遍历操作。分享给大家供大家参考,具体如下:
<强> 1,栈栈强>
特点:先进先出(可以抽象成竹筒中的豆子,先进去的后出来]后来者居上
mystack=[] #压栈(向栈中存数据) mystack.append (1) 打印(mystack) mystack.append (2) 打印(mystack) mystack.append (3) 打印(mystack) #出栈(从栈中取数据) mystack.pop () 打印(mystack) mystack.pop () 打印(mystack) >之前<强> 2队列队列强>
特点:先进先出(可以抽象成一个平放的水管)
#导入数据结构的集合 进口集合 队列=collections.deque ([1、2、3、4、5)) 打印(队列) #入队(存数据) queue.append (8) 打印(队列) queue.append (9) 打印(队列) #取数据 print (queue.popleft ()) 打印(队列) >之前
<强> 1,递归遍历目录强>
进口操作系统 suojin def diguigetAllDir(路径): #如果文件夹中只有文件则返回 如果os.path.isfile(路径): 返回 #如果为空文件夹则返回 list1=os.listdir(路径) 如果len (list1)==0: 返回 #遍历list1列表 在list1:项 打印(“* suojin, ' % s ' %项) 项path2=os.path.join(路径) 如果os.path.isdir (path2): diguigetAllDir (path2 suojin + 4) #遍历当前目录 diguigetAllDir (os.getcwd (), 0) >之前<强> 2,栈模拟递归遍历目录强>
也称为深度遍历
进口操作系统 def stackGetAllDir(路径): 如果不是os.listdir(路径): 返回 liststack=(路径) listsuojin=[0] 打印(liststack) 而len (liststack) !=0: 路径=liststack.pop() #路径出栈 suojin=listsuojin.pop() #缩进空格个数出栈 打印(“* suojin os.path.basename(路径)) 如果os.path.isdir(路径): 因为我在os.listdir(路径):#遍历路径下的全部文件 listsuojin。追加(suojin + 4) liststack.append (os.path.join(我)路径,)#文件名拼接成相对路径后入栈 #遍历当前目录 stackGetAllDir (os.getcwd ()) >之前<强> 3队列模拟递归遍历目录强>
也被称为广度遍历
进口操作系统 进口集合 def queueGetAllDir (path=" "): 如果不是os.listdir(路径): 返回 队列=collections.deque () queue.append(路径) 而len(队列)!=0: filePath=queue.popleft () 文件列表=os.listdir (filePath) #遍历filePath路径下的目录 文件名的文件列表: absFilePath=os.path.join (filePath文件名)#路径拼接 如果os.path.isdir (absFilePath): 打印(“目录:“文件名) queue.append (absFilePath) 其他: 打印(“文件:“文件名) #遍历当前目录 queueGetAllDir (os.getcwd ()) >之前更多关于Python相关内容感兴趣的读者可查看本站专题:《Python数据结构与算法教程》、《Python加密解密算法与技巧总结》,《Python编码操作技巧总结》,《Python函数使用技巧总结》,《Python字符串操作技巧汇总》及《Python入门与进阶经典教程》
希望本文所述对大家Python程序设计有所帮助。
Python实现的栈,队列,文件目录遍历操作示例