vue 方法間傳遞資料物件引數
阿新 • • 發佈:2020-12-21
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.py F:\path_test\02.py """
2,遞迴遍歷
# ......
# 遍歷 F:/path_test目錄及子目錄下 所有的 py 檔案
# 遞迴遍歷所有子目錄
ret = p.glob("**/*.py")
for item in ret:
print(item)
""" 執行結果
F:\path_test\01.py
F:\path_test\02.py
F:\path_test\src\11.py
F:\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.py F:\path_test\02.py F:\path_test\src\11.py F:\path_test\src\22.py """
缺點:當目錄樹較大時,Path.glob() 耗時較長。