首頁>技術>

1,搜尋檔案,檔案過濾

這裡使用:pathlib 模組的 Path.glob(pattern) 方法,該方法可以用來過濾目標檔案,以迭代器的形式返回搜尋結果。

pattern: 萬用字元:"*.py":搜尋指定目錄下所有的py字尾檔案,只搜尋當前目錄,不搜尋子目錄。"**/*.py":搜尋指定目錄下所有的py字尾檔案,包括子目錄。"**" 模式表示 “此目錄以及所有子目錄,遞迴”。換句話說,它啟用遞迴通配:

檔名可以使用以下符號組合進行模式匹配:" * " 匹配0個或多個字元" ? " 僅匹配一個字元" [] " 匹配指定範圍內的字元,如[0-9]匹配數字2,用法:

1,只遍歷當前目錄

import pathlib# 構建一個pathlib.Path()物件# 指定一個目錄起始點:"F:/path_test"p = pathlib.Path("F:/path_test")# 遍歷 F:/path_test目錄下,所有的 py 檔案# 只遍歷當前目錄ret = p.glob("*.py")for item in ret:print(item)""" 執行結果F:\path_test\01.pyF:\path_test\02.py"""

2,遞迴遍歷

# ......# 遍歷 F:/path_test目錄及子目錄下 所有的 py 檔案# 遞迴遍歷所有子目錄ret = p.glob("**/*.py")for item in ret:print(item)""" 執行結果F:\path_test\01.pyF:\path_test\02.pyF:\path_test\src\11.pyF:\path_test\src\22.py"""

3,Path.rglob() 遞迴遍歷

# ......# 遍歷 F:/path_test目錄及子目錄下 所有的 py 檔案# 遞迴遍歷所有子目錄# 這就像呼叫 Path.glob()時,萬用字元 pattern 前面添加了 "**/" 一樣ret = p.rglob("*.py")for item in ret:print(item)""" 執行結果F:\path_test\01.pyF:\path_test\02.pyF:\path_test\src\11.pyF:\path_test\src\22.py"""

缺點:當目錄樹較大時,Path.glob() 耗時較長。

12
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 豆瓣讀書top250資料爬取與視覺化