最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python文件路徑模式匹配glob模塊使用詳解

 更新時(shí)間:2025年04月18日 09:38:44   作者:tekin  
這篇文章主要介紹了Python文件路徑模式匹配glob模塊使用的相關(guān)資料,glob模塊是Python中用于文件和目錄查找的工具,支持使用通配符進(jìn)行模糊匹配,它可以處理簡(jiǎn)單的文件名模式,并通過(guò)glob和iglob兩個(gè)函數(shù)實(shí)現(xiàn)文件路徑的模式匹配,需要的朋友可以參考下

一、glob 模塊概述

glob 模塊可根據(jù)指定的模式來(lái)查找文件和目錄,它支持使用通配符進(jìn)行模糊匹配。主要通過(guò) glob 和 iglob 兩個(gè)函數(shù)來(lái)實(shí)現(xiàn)文件路徑的模式匹配,能處理簡(jiǎn)單的文件名模式,如 *.txt 可匹配所有擴(kuò)展名為 .txt 的文件。

二、通配符規(guī)則

(一)* 通配符

  • 功能:匹配任意數(shù)量(包括零個(gè))的任意字符。
  • 示例
import glob

# 匹配當(dāng)前目錄下所有擴(kuò)展名為 .txt 的文件
txt_files = glob.glob('*.txt')
for file in txt_files:
    print(file)

上述代碼中,*.txt 表示匹配當(dāng)前目錄下文件名任意,但擴(kuò)展名為 .txt 的所有文件。

(二)? 通配符

  • 功能:匹配單個(gè)任意字符。
  • 示例
import glob

# 匹配當(dāng)前目錄下文件名只有一個(gè)字符且擴(kuò)展名為 .py 的文件
single_char_py_files = glob.glob('?.py')
for file in single_char_py_files:
    print(file)

這里,?.py 表示文件名只有一個(gè)字符,擴(kuò)展名為 .py 的文件。

(三)[] 通配符

  • 功能:匹配方括號(hào)內(nèi)指定的任意一個(gè)字符。

  • 示例

import glob

# 匹配當(dāng)前目錄下文件名以 a 或 b 開(kāi)頭且擴(kuò)展名為 .txt 的文件
ab_txt_files = glob.glob('[ab]*.txt')
for file in ab_txt_files:
    print(file)

[ab]*.txt 表示文件名以 a 或 b 開(kāi)頭,擴(kuò)展名為 .txt 的文件。

(四)** 通配符(遞歸匹配)

  • 功能:在路徑中使用 ** 表示遞歸匹配目錄。在 Python 3.5 及以上版本支持。
  • 示例
import glob

# 遞歸匹配當(dāng)前目錄及其子目錄下所有擴(kuò)展名為 .txt 的文件
all_txt_files = glob.glob('**/*.txt', recursive=True)
for file in all_txt_files:
    print(file)

**/*.txt 結(jié)合 recursive=True 會(huì)遞歸查找當(dāng)前目錄及其所有子目錄下的 .txt 文件。

三、glob 函數(shù)

(一)glob.glob(pathname, *, recursive=False)

  • 功能:返回一個(gè)符合指定模式的文件和目錄路徑列表。

  • 參數(shù):

    • pathname:要匹配的路徑模式。
    • recursive:是否進(jìn)行遞歸匹配,默認(rèn)為 False。當(dāng)設(shè)置為 True 時(shí),支持使用 ** 通配符進(jìn)行遞歸查找。
  • 示例

import glob

# 匹配當(dāng)前目錄及其子目錄下所有以 test 開(kāi)頭的文件
test_files = glob.glob('**/test*', recursive=True)
for file in test_files:
    print(file)

四、iglob 函數(shù)

(一)glob.iglob(pathname, *, recursive=False)

  • 功能:返回一個(gè)迭代器,該迭代器會(huì)逐個(gè)產(chǎn)生符合指定模式的文件和目錄路徑。
  • 參數(shù):與 glob.glob 相同。
  • 示例
import glob

# 使用 iglob 迭代匹配當(dāng)前目錄下所有 .py 文件
py_files_iter = glob.iglob('*.py')
for file in py_files_iter:
    print(file)

iglob 適合處理大量匹配結(jié)果的情況,因?yàn)樗粫?huì)一次性生成所有匹配結(jié)果,而是逐個(gè)產(chǎn)生,節(jié)省內(nèi)存。

五、glob 與其他文件查找方式的對(duì)比

查找方式優(yōu)點(diǎn)缺點(diǎn)適用場(chǎng)景
glob 模塊使用簡(jiǎn)單,支持通配符匹配,能快速查找符合模式的文件和目錄。模式匹配功能相對(duì)簡(jiǎn)單,不支持復(fù)雜的正則表達(dá)式匹配。簡(jiǎn)單的文件和目錄查找,如按擴(kuò)展名、文件名前綴等查找。
os.walk 函數(shù)可以遞歸遍歷目錄樹(shù),能詳細(xì)控制遍歷過(guò)程。需要手動(dòng)編寫(xiě)代碼進(jìn)行文件篩選,使用相對(duì)復(fù)雜。需要對(duì)目錄樹(shù)進(jìn)行深度遍歷和復(fù)雜篩選的場(chǎng)景。
re 模塊(正則表達(dá)式)支持復(fù)雜的模式匹配,功能強(qiáng)大。學(xué)習(xí)成本較高,代碼相對(duì)復(fù)雜。需要進(jìn)行復(fù)雜文件名模式匹配的場(chǎng)景。

六、應(yīng)用場(chǎng)景

(一)批量文件處理

可以使用 glob 模塊查找符合特定模式的文件,然后對(duì)這些文件進(jìn)行批量處理,如批量重命名、批量讀取文件內(nèi)容等。

import glob

# 批量重命名當(dāng)前目錄下所有 .txt 文件
txt_files = glob.glob('*.txt')
for file in txt_files:
    new_name = file.replace('.txt', '_new.txt')
    import os
    os.rename(file, new_name)

(二)數(shù)據(jù)收集

在進(jìn)行數(shù)據(jù)收集時(shí),可能需要從多個(gè)文件中讀取數(shù)據(jù)??梢允褂?nbsp;glob 模塊查找相關(guān)文件,然后讀取數(shù)據(jù)。

import glob

# 讀取當(dāng)前目錄及其子目錄下所有 .csv 文件的數(shù)據(jù)
csv_files = glob.glob('**/*.csv', recursive=True)
for file in csv_files:
    with open(file, 'r') as f:
        data = f.read()
        print(f"Data from {file}: {data[:100]}...")

文章總結(jié)

glob 模塊為 Python 開(kāi)發(fā)者提供了一種便捷的文件和目錄查找方式,通過(guò)使用 Unix 風(fēng)格的通配符規(guī)則,能快速定位符合特定模式的文件和目錄。glob.glob 函數(shù)返回匹配結(jié)果列表,glob.iglob 函數(shù)返回迭代器,適用于不同的應(yīng)用場(chǎng)景。在簡(jiǎn)單的文件查找和批量處理任務(wù)中,glob 模塊是一個(gè)非常實(shí)用的工具。

到此這篇關(guān)于Python文件路徑模式匹配glob模塊使用的文章就介紹到這了,更多相關(guān)Python文件路徑模式匹配glob模塊內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Django實(shí)現(xiàn)自定義404,500頁(yè)面教程

    Django實(shí)現(xiàn)自定義404,500頁(yè)面教程

    這篇文章主要介紹了Django實(shí)現(xiàn)自定義404,500頁(yè)面的詳細(xì)方法,非常簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2017-03-03
  • python利用ddddocr包ocr識(shí)別圖片碼的實(shí)現(xiàn)

    python利用ddddocr包ocr識(shí)別圖片碼的實(shí)現(xiàn)

    ddddocr是一個(gè)輕量級(jí)的OCR庫(kù),用于識(shí)別圖片中的文字和驗(yàn)證碼,本文主要介紹了python利用ddddocr包ocr識(shí)別圖片碼的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-01-01
  • 調(diào)整Jupyter notebook的啟動(dòng)目錄操作

    調(diào)整Jupyter notebook的啟動(dòng)目錄操作

    這篇文章主要介紹了調(diào)整Jupyter notebook的啟動(dòng)目錄操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-04-04
  • Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘

    Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘

    這篇文章主要為大家介紹了Python輕松獲取網(wǎng)絡(luò)時(shí)間和本地時(shí)間技巧揭秘,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • python學(xué)生管理系統(tǒng)

    python學(xué)生管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python學(xué)生管理系統(tǒng)的相關(guān)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法

    關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法

    這篇文章主要介紹了關(guān)于python pycharm中輸出的內(nèi)容不全的解決辦法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-01-01
  • PyCharm配置anaconda環(huán)境的步驟詳解

    PyCharm配置anaconda環(huán)境的步驟詳解

    PyCharm是一款很好用很流行的python編輯器。Anaconda通過(guò)管理工具包、開(kāi)發(fā)環(huán)境、Python版本,大大簡(jiǎn)化了你的工作流程。今天通過(guò)本文給大家分享PyCharm配置anaconda環(huán)境,感興趣的朋友一起看看吧
    2020-07-07
  • 淺談Python之Django(二)

    淺談Python之Django(二)

    這篇文章主要介紹了Python3中的Django,小編覺(jué)得這篇文章寫(xiě)的還不錯(cuò),需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧,希望能夠給你帶來(lái)幫助
    2021-10-10
  • python生成日歷實(shí)例解析

    python生成日歷實(shí)例解析

    這篇文章主要介紹了python生成日歷的方法,實(shí)用了python自帶的 calendar模塊加以實(shí)現(xiàn),需要的朋友可以參考下
    2014-08-08
  • python?基于aiohttp的異步爬蟲(chóng)實(shí)戰(zhàn)詳解

    python?基于aiohttp的異步爬蟲(chóng)實(shí)戰(zhàn)詳解

    這篇文章主要為大家介紹了python?基于aiohttp的異步爬蟲(chóng)實(shí)戰(zhàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09

最新評(píng)論

晋城| 昆明市| 黄梅县| 黄大仙区| 潍坊市| 商丘市| 扶绥县| 定南县| 偃师市| 梓潼县| 垫江县| 波密县| 石河子市| 长岭县| 龙井市| 建阳市| 固镇县| 丹阳市| 文安县| 紫阳县| 芦山县| 广东省| 新余市| 秦皇岛市| 灵丘县| 陆丰市| 巴东县| 金华市| 图木舒克市| 墨江| 嘉黎县| 常熟市| 乳源| 名山县| 大厂| 绵竹市| 崇文区| 永定县| 类乌齐县| 广德县| 永顺县|