Python零基礎學習筆記(三十八)——遞迴方法、棧、佇列模擬遍歷目錄
用遞迴方法遍歷目錄:
使用到os模組,所以要先引入os模組
處理檔案:
核心是判斷檔案是否是目錄檔案,如果是目錄檔案就進行遞迴處理,直接將檔名列印出來
下面是檔案程式碼:
import os
def getAllDir(path, sp = " "):
fileList = os.listdir(path)
#處理每一個檔案
sp += " "
for fileName in fileList:
#判斷是否是路徑(用絕對路徑)
absFliePath = os.path.join(path, fileName)
if os.path.isdir(absFliePath):
print(sp + "目錄:", fileName)
#遞迴呼叫
getAllDir(absFliePath, sp)
else:
print(sp + "普通檔案", fileName)
return fileList
getAllDir(r"C:UsersAdministratorPycharmProjectsuntitledday011")
棧方法:
import os
def getAllDirDE(path):
stack = []
stack.append(path)
#處理棧,當棧為空的時候結束迴圈
while len(stack) != 0:
dirPath = stack.pop()
fileDir = os.listdir(dirPath)
for fileName in fileDir:
fileAbsPath = os.path.join(dirPath, fileName)
if os.path.isdir(fileAbsPath):
print("目錄:"+ fileName)
stack.append(fileAbsPath)
else:
print("普通檔案:", fileName)
getAllDirDE(r"C:UsersAdministratorPycharmProjectsuntitledday011")
佇列方法:
import os
import collections
def getAllDir(path):
queue = collections.deque()
#進隊
queue.append(path)
while len(queue) != 0:
dirPath = queue.popleft()
fileList = os.listdir(dirPath)
for fileName in fileList:
fileAbsPath = os.path.join(dirPath, fileName)
if os.path.isdir(fileAbsPath):
print("目錄:"+fileName)
queue.append(fileAbsPath)
else:
print("檔案:"+fileName)
getAllDir(r"C:UsersAdministratorPycharmProjectsuntitledday011")
相關文章
- Python自學之路:遞迴、棧和佇列遍歷目錄Python遞迴佇列
- Python基礎之棧與佇列及遞迴目錄Python佇列遞迴
- 記錄遍歷方法
- 目錄遍歷-基於Pikachu的學習
- 刷題系列 - 用遞迴和遍歷兩個方法反轉一個單鏈佇列遞迴佇列
- Redis 佇列學習記錄Redis佇列
- Laravel 佇列 --- database 驅動(今天剛學習了佇列,記錄下筆記)Laravel佇列Database筆記
- [work] python巢狀字典的遞迴遍歷Python巢狀遞迴
- 樹3-二叉樹非遞迴遍歷(棧)二叉樹遞迴
- 《演算法筆記二》連結串列、棧、佇列、遞迴、雜湊表、順序表演算法筆記佇列遞迴
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- Spring學習筆記目錄Spring筆記
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- js遞迴遍歷講解JS遞迴
- Python零基礎學習筆記(九)——隨機數Python筆記隨機
- Python零基礎學習筆記(四十)——datetime和CalendarPython筆記
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- Python零基礎學習筆記(二十二)——setPython筆記
- Python零基礎學習筆記(二十)——tuple元組Python筆記
- Proteus模擬學習筆記筆記
- 模擬退火學習筆記筆記
- 模擬退火 學習筆記筆記
- 遞迴遍歷當前目錄下所有的git倉庫,執行git pull操作遞迴Git
- Python3學習筆記4 , 迴圈、模組Python筆記
- Python零基礎學習筆記(三十五)——記憶體修改Python筆記記憶體
- 遞迴轉非遞迴 棧模擬 Recursive to Non-recursive stack simulated 總結遞迴
- 遍歷二叉樹的迭代和遞迴方法二叉樹遞迴
- Python零基礎學習程式碼實踐——模擬彩票中獎Python
- 遞迴遍歷網站所有 url遞迴網站
- Python零基礎學習筆記(二十三)——迭代器Python筆記
- Python零基礎學習筆記(二十四)——函式Python筆記函式
- Python零基礎學習筆記(二十一)——dict字典Python筆記
- python實現二叉樹及其七種遍歷方式(遞迴+非遞迴)Python二叉樹遞迴
- php使用佇列 SplQueue類學習記錄PHP佇列
- 資料結構基礎學習之(棧和佇列)資料結構佇列
- 【Java資料結構與演算法筆記(二)】樹的四種遍歷方式(遞迴&非遞迴)Java資料結構演算法筆記遞迴
- 非遞迴實現先序遍歷和中序遍歷遞迴