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佇列遞迴
- python 遞迴遍歷目錄Python遞迴
- java基礎:遞迴應用---遍歷檔案目錄Java遞迴
- 目錄遍歷-基於Pikachu的學習
- 刷題系列 - 用遞迴和遍歷兩個方法反轉一個單鏈佇列遞迴佇列
- Redis 佇列學習記錄Redis佇列
- 遍歷某一個指定目錄下的所有子目錄和檔案(遞迴)遞迴
- Laravel 佇列 --- database 驅動(今天剛學習了佇列,記錄下筆記)Laravel佇列Database筆記
- 樹3-二叉樹非遞迴遍歷(棧)二叉樹遞迴
- 遍歷二叉樹-------遞迴&非遞迴二叉樹遞迴
- 《演算法筆記二》連結串列、棧、佇列、遞迴、雜湊表、順序表演算法筆記佇列遞迴
- Java遍歷資料夾的兩種方法(非遞迴和遞迴)Java遞迴
- 模擬退火 學習筆記筆記
- 模擬退火學習筆記筆記
- Proteus模擬學習筆記筆記
- [work] python巢狀字典的遞迴遍歷Python巢狀遞迴
- js遞迴遍歷講解JS遞迴
- 陣列常見的遍歷迴圈方法、陣列的迴圈遍歷的效率對比陣列
- 遞迴轉非遞迴 棧模擬 Recursive to Non-recursive stack simulated 總結遞迴
- Python零基礎學習筆記(十五)——list(列表)Python筆記
- 遞迴遍歷當前目錄下所有的git倉庫,執行git pull操作遞迴Git
- 遍歷二叉樹的迭代和遞迴方法二叉樹遞迴
- 遞迴遍歷網站所有 url遞迴網站
- Java 資料夾遞迴遍歷Java遞迴
- PHP遞迴遍歷資料夾PHP遞迴
- Spring學習筆記目錄Spring筆記
- Python零基礎學習程式碼實踐——模擬彩票中獎Python
- Python零基礎學習筆記(二十)——tuple元組Python筆記
- Python零基礎學習筆記(九)——隨機數Python筆記隨機
- Python零基礎學習筆記(三十)——讀檔案Python筆記
- Python零基礎學習筆記(二十二)——setPython筆記
- 演算法學習記錄五(C++)--->兩個棧實現佇列演算法C++佇列
- 006零基礎學Python:Python 檔案I/O和File方法--學習筆記Python筆記
- 資料結構基礎學習之(棧和佇列)資料結構佇列
- php使用佇列 SplQueue類學習記錄PHP佇列
- 非遞迴實現先序遍歷和中序遍歷遞迴
- 關於SQLServer2005的學習筆記——CTE遞迴和模擬測試資料SQLServer筆記遞迴