Python - os.walk()詳細使用


os.walk() 方法簡單介紹

  • 主要用來遍歷一個目錄內各個子目錄和子文件
  • 是一個簡單易用的文件、目錄遍歷器,可以幫助我們高效的處理文件、目錄方面的事情。

 

方法參數介紹

os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]]) 

  • top :是你所要遍歷的目錄的地址, 返回的是一個三元組 (dirpath, dirnames, filenames) 
  • topdown :可選,True則優先遍歷 top 文件夾,與top 文件夾中每一個子目錄;否則優先遍歷 top 的子目錄(默認為開啟)。
  • onerror :可選,需要一個 callable 對象,當 walk 需要異常時,會調用
  • followlinks :可選,如果為 True,則會遍歷目錄下的快捷方式(linux 下是軟連接 symbolic link )實際所指的目錄(默認關閉),如果為 False,則優先遍歷 top 的子目錄

 

返回的三元組介紹

dirpath :string,代表目錄的路徑,

dirnames :list,包含了dirpath下所有子目錄的名字。

filenames :list,包含了非目錄文件的名字。

 

簡單代碼實現

path = os.getcwd()
for dirpath, dirnames, filenames in os.walk(path):
    print(dirpath)
    print(dirnames)
    print(filenames)

 

測試結果

F:\pylearn\learn
['test']
['bytes_str.py', 'get_file_md5_test.py', 'List_Tuple_Learning.py', 'Number_Learning.py', 'os_walk.py', 'String_Learning.py', '__init__.py']
F:\pylearn\learn\test
[]
['test.py', '__init__.py']

 

包含知識點

可以看到當你top路徑下還有目錄時,是會遞歸查詢的

上面的代碼等價於下面的代碼,當然不建議這樣寫,因為不夠清晰明了

for data in os.walk(path):
    print(data[0])
    print(data[1])
    print(data[2])

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM