Python3 os.walk() 方法
概述
os.walk() 方法可以創建一個生成器,用以生成所要查找的目錄及其子目錄下的所有檔。
os.walk() 方法用於通過在目錄樹中游走輸出在目錄中的檔案名,向上或者向下。
os.walk() 方法是一個簡單易用的檔、目錄遍曆器,可以幫助我們高效的處理檔、目錄方面的事情。
在Unix,Windows中有效。
語法
walk()方法語法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
參數
-
top -- 根目錄下的每一個檔夾(包含它自己), 產生3-元組 (dirpath, dirnames, filenames)【檔夾路徑, 檔夾名字, 檔案名】。
topdown --可選,為True或者沒有指定, 一個目錄的的3-元組將比它的任何子檔夾的3-元組先產生 (目錄自上而下)。如果topdown為 False, 一個目錄的3-元組將比它的任何子檔夾的3-元組後產生 (目錄自下而上)。
onerror -- 可選,是一個函數; 它調用時有一個參數, 一個OSError實例。報告這錯誤後,繼續walk,或者拋出exception終止walk。
followlinks -- 設置為 true,則通過軟鏈接訪問目錄。
返回值
該方法沒有返回值。
實例
以下實例演示了 walk() 方法的使用:
實例
#!/usr/bin/python3
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
執行以上程式輸出結果為:
./.bash_logout ./amrood.tar.gz ./.emacs ./httpd.conf ./www.tar.gz ./mysql.tar.gz ./test.py ./.bashrc ./.bash_history ./.bash_profile ./tmp ./tmp/test.py