自學python如何成為大佬(目錄):https://blog.csdn.net/weixin_67859959/article/details/139049996?spm=1001.2014.3001.5501
遍歷在漢語中的意思是全部走遍,到處周游。在Python中,遍歷是將指定的目錄下的全部目錄(包括子目錄)及文件訪問一遍。在Python中,os模塊的walk()函數用于實現遍歷目錄的功能。walk()函數的基本語法格式如下:
os.walk(top[, topdown][, onerror][, followlinks])
參數說明:
l??top:用于指定要遍歷內容的根目錄。
l??topdown:可選參數,用于指定遍歷的順序,如果值為True,表示自上而下遍歷(即先遍歷根目錄);如果值為False,表示自下而上遍歷(即先遍歷最后一級子目錄)。默認值為True。
l??onerror:可選參數,用于指定錯誤處理方式,默認為忽略,如果不想忽略也可以指定一個錯誤處理函數。通常情況下采用默認設置。
l??followlinks:可選參數,默認情況下,walk()函數不會向下轉換成解析到目錄的符號鏈接,將該參數值設置為True,表示用于指定在支持的系統上訪問由符號鏈接指向的目錄。
l??返回值:返回一個包括3個元素(dirpath, dirnames, filenames)的元組生成器對象。其中,dirpath表示當前遍歷的路徑,是一個字符串;dirnames表示當前路徑下包含的子目錄,是一個列表;filenames表示當前路徑下包含的文件,也是一個列表。
例如,要遍歷指定目錄“F:\program\Python\Code\01”,可以使用下面的代碼:
import?os??????????????? ????????????????#?導入os模塊
tuples = os.walk("F:\\program\\Python\\Code\\01")????#?遍歷"F:\program\Python\Code\01"目錄
for?tuple1?in?tuples:?? ????????????????#?通過for循環輸出遍歷結果
????print(tuple1 ,"\n")? ????????????????#?輸出每一級目錄的元組
如果在“F:\program\Python\Code\01”目錄下包括如圖23所示的內容,執行上面的代碼,將顯示如圖24所示的結果。
圖23??要遍歷的目錄
圖24??遍歷指定目錄的結果
注意:walk()函數只在Unix系統和Windows系統中有效。
圖24得到的結果比較混亂,下面通過一個具體的實例演示實現遍歷目錄時,輸出目錄或文件的完整路徑。
??實例05??遍歷指定目錄
在IDLE中創建一個名稱為walk_list.py的文件,首先在該文件中導入os模塊,并定義要遍歷的根目錄,然后應用for循環遍歷該目錄,最后循環輸出遍歷到文件和子目錄,代碼如下:
import?os????????????????????????? ????????????#?導入os模塊
path =?"C:\\demo"?????????????? ????????????????#?指定要遍歷的根目錄
print("【",path,"】?目錄下包括的文件和目錄:")
for?root, dirs, files?in?os.walk(path,?topdown=True):????#?遍歷指定目錄
????for?name?in?dirs:???????????? ????????????#?循環輸出遍歷到的子目錄
????????print("●",os.path.join(root, name))
????for?name?in?files:??????????? ????????????#?循環輸出遍歷到的文件
????????print("◎",os.path.join(root, name))
執行上面的代碼,可能顯示如圖25所示的結果。
圖25??遍歷指定目錄
說明:讀者得到的結果可能會與此不同,具體顯示內容將根據具體的目錄結構而定。