欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python使用glob庫批量匹配文件路徑

 更新時間:2025年06月11日 10:24:07   作者:蕭鼎  
在 Python 中處理文件路徑時,尤其是批量查找滿足特定模式的文件,glob 是一個非常實用的標(biāo)準(zhǔn)庫,它使用類似 Unix Shell 的通配符規(guī)則,幫助你輕松完成文件路徑的匹配工作,本文將深入介紹 Python 的 glob 模塊,從基本語法到實際應(yīng)用,需要的朋友可以參考下

一、glob 模塊簡介

glob 是 Python 的標(biāo)準(zhǔn)庫之一,無需額外安裝,專門用于文件名的模式匹配搜索。它的名字來源于 Unix shell 命令中的“globbing”,意思是使用通配符進行匹配。

常見應(yīng)用場景包括:

  • 批量讀取某個目錄下的圖片、文本、日志等文件
  • 在子目錄中遞歸查找特定類型的文件
  • 配合 os 或 shutil 實現(xiàn)批量文件復(fù)制、刪除、重命名等操作

二、通配符模式基礎(chǔ)

glob 使用與 shell 類似的通配符規(guī)則:

通配符含義示例
*匹配任意長度的任意字符*.txt 匹配所有 .txt
?匹配任意一個字符file?.txt 匹配 file1.txtfileA.txt
[]匹配指定范圍內(nèi)的任一字符file[1-3].txt 匹配 file1.txtfile2.txtfile3.txt
**匹配任意目錄(需開啟遞歸)**/*.py 匹配任意子目錄中的 .py 文件(需設(shè)置 recursive=True

三、基本用法

3.1 查找當(dāng)前目錄下的所有 .txt 文件

import glob

files = glob.glob("*.txt")
print(files)
# 輸出示例: ['data1.txt', 'report.txt']

3.2 匹配指定路徑中的圖像文件

image_files = glob.glob("images/*.jpg")

3.3 匹配多個后綴名(結(jié)合列表推導(dǎo))

files = glob.glob("data/*.csv") + glob.glob("data/*.xlsx")

四、遞歸查找子目錄文件(**)

從 Python 3.5 開始,glob 支持遞歸模式:

files = glob.glob("**/*.py", recursive=True)

這會在當(dāng)前目錄及其所有子目錄中查找 .py 文件。

默認情況下 ** 不遞歸,必須顯式設(shè)置 recursive=True。

五、與 os.path、pathlib 聯(lián)合使用

5.1 獲取文件名或絕對路徑

import os

for file in glob.glob("logs/*.log"):
    print("文件名:", os.path.basename(file))
    print("絕對路徑:", os.path.abspath(file))

5.2 使用 pathlib 更優(yōu)雅地處理路徑

from pathlib import Path

files = Path("data").glob("*.txt")
for file in files:
    print(file.name, file.stem, file.suffix)

六、高級使用技巧

6.1 查找以數(shù)字開頭的文件

glob.glob("[0-9]*.txt")

6.2 多級目錄下查找 .png 圖像

glob.glob("*/**/*.png", recursive=True)

6.3 排除某些文件(結(jié)合 fnmatch 或過濾器)

import fnmatch

files = [f for f in glob.glob("data/*.csv") if not fnmatch.fnmatch(f, "data/test_*.csv")]

七、實戰(zhàn)案例:批量讀取圖片并處理

import glob
from PIL import Image

image_paths = glob.glob("images/**/*.jpg", recursive=True)

for path in image_paths:
    img = Image.open(path)
    print(f"{path}: {img.size}")

八、glob vs os.listdir vs pathlib

特性globos.listdirpathlib
通配符匹配支持不支持,需要手動過濾支持 .glob()
遞歸搜索支持 (**)需手動遞歸遍歷rglob() 更簡潔
返回類型str 列表str 列表Path 對象生成器
使用習(xí)慣類 Unix shell 風(fēng)格簡單、通用面向?qū)ο?、現(xiàn)代化

建議在新項目中逐漸遷移至 pathlib,但 glob 的通配能力仍不可替代。

九、常見問題與誤區(qū)

9.1 glob 不返回文件?

  • 檢查路徑是否正確(相對/絕對路徑)
  • 注意區(qū)分大小寫(特別是 Linux)
  • **/*.py 要配合 recursive=True

9.2 無法匹配隱藏文件?

glob("*") 默認不會匹配以 . 開頭的文件,需要明確指定:

glob.glob(".*")  # 匹配隱藏文件

十、總結(jié)與最佳實踐

  • glob 是處理文件路徑批量操作的利器
  • 支持通配符、遞歸、靈活組合
  • 可與 os、pathlib、PIL、shutil 等庫組合處理復(fù)雜任務(wù)
  • 對于大規(guī)模目錄掃描,推薦使用 pathlib.rglob() 更高效

以上就是Python使用glob庫批量匹配文件路徑的詳細內(nèi)容,更多關(guān)于Python glob匹配文件路徑的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 在Python中如何使用yield

    在Python中如何使用yield

    在 Python 開發(fā)中,yield 關(guān)鍵字的使用其實較為頻繁,例如大集合的生成,簡化代碼結(jié)構(gòu)、協(xié)程與并發(fā)都會用到它,文中詳細介紹了yield的用法,需要的朋友可以參考下
    2021-06-06
  • 在Django同1個頁面中的多表單處理詳解

    在Django同1個頁面中的多表單處理詳解

    這篇文章主要給大家介紹了在Django同1個頁面中的多表單處理的相關(guān)資料,文章先給大家介紹了如何快速上手Django實現(xiàn)項目的方法,方便讓大家理解和學(xué)習(xí),需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-01-01
  • python 容器總結(jié)整理

    python 容器總結(jié)整理

    這篇文章主要介紹了python 容器總結(jié)整理的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • 使用Python將PDF表格提取到文本,CSV和Excel文件中

    使用Python將PDF表格提取到文本,CSV和Excel文件中

    本文將介紹如何使用簡單的Python代碼從PDF文檔中提取表格數(shù)據(jù)并將其寫入文本、CSV和Excel文件,從而輕松實現(xiàn)PDF表格的自動化提取,有需要的可以參考下
    2024-11-11
  • python深入講解魔術(shù)方法

    python深入講解魔術(shù)方法

    所謂魔法函數(shù)(Magic Methods),是Python的?種?級語法,允許你在類中?定義函數(shù)(函數(shù)名格式?般為__xx__),并綁定到類的特殊?法中。?如在類A中?定義__str__()函數(shù),則在調(diào)?str(A())時,會?動調(diào)?__str__()函數(shù),并返回相應(yīng)的結(jié)果
    2022-06-06
  • 使用python創(chuàng)建股票的時間序列可視化分析

    使用python創(chuàng)建股票的時間序列可視化分析

    這篇文章主要為大家詳細介紹了python創(chuàng)建股票的時間序列可視化分析,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • 使用matplotlib動態(tài)刷新指定曲線實例

    使用matplotlib動態(tài)刷新指定曲線實例

    這篇文章主要介紹了使用matplotlib動態(tài)刷新指定曲線實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-04-04
  • Python生成器next方法和send方法區(qū)別詳解

    Python生成器next方法和send方法區(qū)別詳解

    這篇文章主要介紹了Python生成器next方法和send方法區(qū)別詳解,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-05-05
  • 基于OpenCV和Gradio實現(xiàn)簡單的人臉識別詳解

    基于OpenCV和Gradio實現(xiàn)簡單的人臉識別詳解

    這篇文章主要為大家詳細介紹了如何基于OpenCV和Gradio實現(xiàn)簡單的人臉識別功能,文中的示例代碼講解詳細,感興趣的小伙伴可以了解一下
    2023-04-04
  • 深入淺出分析Python裝飾器用法

    深入淺出分析Python裝飾器用法

    這篇文章主要介紹了Python裝飾器用法,結(jié)合實例形式對比分析了Python裝飾器的定義與使用技巧,需要的朋友可以參考下
    2017-07-07

最新評論