Python實現(xiàn)的棧、隊列、文件目錄遍歷操作示例
本文實例講述了Python實現(xiàn)的棧、隊列、文件目錄遍歷操作。分享給大家供大家參考,具體如下:
一、 棧與隊列
1、 棧 stack
特點:先進先出[可以抽象成竹筒中的豆子,先進去的后出來] 后來者居上
mystack = [] #壓棧[向棧中存數(shù)據(jù)] mystack.append(1) print(mystack) mystack.append(2) print(mystack) mystack.append(3) print(mystack) #出棧[從棧中取數(shù)據(jù)] mystack.pop() print(mystack) mystack.pop() print(mystack)
2、 隊列 queue
特點: 先進先出[可以抽象成一個平放的水管]
#導入數(shù)據(jù)結構的集合 import collections queue = collections.deque([1, 2, 3, 4, 5]) print(queue) #入隊[存數(shù)據(jù)] queue.append(8) print(queue) queue.append(9) print(queue) #取數(shù)據(jù) print(queue.popleft()) print(queue)
二、 目錄遍歷
1、 遞歸遍歷目錄
import os
def diguigetAllDir(path,suojin):
# 如果文件夾中只有文件則返回
if os.path.isfile(path):
return
# 如果為空文件夾則返回
list1 = os.listdir(path)
if len(list1) == 0:
return
# 遍歷list1列表
for item in list1:
print(' '*suojin,'%s'%item)
path1 = os.path.join(path,item)
if os.path.isdir(path1):
diguigetAllDir(path1, suojin + 4)
# 遍歷當前目錄
diguigetAllDir(os.getcwd(),0)
2、 棧模擬遞歸遍歷目錄
也稱為深度遍歷
import os
def stackGetAllDir(path):
if not os.listdir(path):
return
liststack = [path]
listsuojin = [0]
print(liststack)
while len(liststack) != 0:
path = liststack.pop() #路徑出棧
suojin = listsuojin.pop() #縮進空格個數(shù)出棧
print(' ' * suojin, os.path.basename(path))
if os.path.isdir(path):
for i in os.listdir(path): #遍歷路徑下的全部文件
listsuojin.append(suojin +4)
liststack.append(os.path.join(path,i)) #文件名拼接成相對路徑后入棧
# 遍歷當前目錄
stackGetAllDir(os.getcwd())
3、 隊列模擬遞歸遍歷目錄
也被稱為廣度遍歷
import os
import collections
def queueGetAllDir(path=" "):
if not os.listdir(path):
return
queue = collections.deque()
queue.append(path)
while len(queue) != 0:
filePath = queue.popleft()
fileList = os.listdir(filePath) #遍歷filePath路徑下的目錄
for filename in fileList:
absFilePath = os.path.join(filePath,filename) #路徑拼接
if os.path.isdir(absFilePath):
print("目錄:",filename)
queue.append(absFilePath)
else:
print("文件:",filename)
# 遍歷當前目錄
queueGetAllDir(os.getcwd())
更多關于Python相關內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結構與算法教程》、《Python加密解密算法與技巧總結》、《Python編碼操作技巧總結》、《Python函數(shù)使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經(jīng)典教程》
希望本文所述對大家Python程序設計有所幫助。
相關文章
python通過zlib實現(xiàn)壓縮與解壓字符串的方法
這篇文章主要介紹了python通過zlib實現(xiàn)壓縮與解壓字符串的方法,較為詳細的介紹了zlib的用法及使用zlib.compressobj和zlib.decompressobj對文件進行壓縮解壓的方法,需要的朋友可以參考下2014-11-11
python 模擬創(chuàng)建seafile 目錄操作示例
這篇文章主要介紹了python 模擬創(chuàng)建seafile 目錄操作,結合實例形式詳細分析了Python模擬創(chuàng)建seafile 目錄相關操作技巧,需要的朋友可以參考下2019-09-09
Python 數(shù)據(jù)的累加與統(tǒng)計的示例代碼
這篇文章主要介紹了Python 數(shù)據(jù)的累加與統(tǒng)計的示例代碼,文中講解非常細致,代碼幫助大家更好的理解和學習,感興趣的朋友可以了解下2020-08-08
使用python操作lmdb對數(shù)據(jù)讀取的實例
這篇文章主要介紹了使用python操作lmdb對數(shù)據(jù)讀取的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12

