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

Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能

 更新時(shí)間:2022年05月07日 09:38:23   作者:渴望力量的哈士奇  
無(wú)論是Linux系統(tǒng)還是Windows系統(tǒng)都有基于文件名實(shí)現(xiàn)過(guò)濾、查找的功能。但是如果想要查找一些關(guān)于某些文件指定內(nèi)容的文件,好像它們明面上沒(méi)有這樣的功能了。這個(gè)時(shí)候就可以通過(guò) Python 來(lái)實(shí)現(xiàn)這樣的功能,快跟隨小編一起學(xué)習(xí)一下吧

該章節(jié)將學(xué)習(xí)關(guān)于文件查找的操作,大家都知道,無(wú)論是 Linux 系統(tǒng)還是 Windows 系統(tǒng)都有基于文件名實(shí)現(xiàn)過(guò)濾、查找的功能。但是如果想要查找一些關(guān)于某些文件指定內(nèi)容的文件,好像無(wú)論是 Linux 還是 Windows 明面上沒(méi)有這樣的功能了。這個(gè)時(shí)候就可以通過(guò) Python 來(lái)實(shí)現(xiàn)這樣的功能,通過(guò)該章節(jié)的學(xué)習(xí),就可以學(xué)習(xí)到該功能的如何利用 Python 實(shí)現(xiàn)這樣的操作。

文件查找操作

glob 的介紹

glob 包是一個(gè)快速查找文件夾中內(nèi)容的包,可以通過(guò)模糊查找的形式找到我們想要的內(nèi)容。

glob 的基本使用

導(dǎo)入包與模塊

from glob import glob

使用方法

glob(任意目錄)

返回內(nèi)容:

指定路徑下的內(nèi)容列表,不存在的路徑返回空列表。

代碼示例如下:

# coding:utf-8

import os
from glob import glob

target = os.getcwd()

result = glob(target)
print(result)                   # 打印輸出當(dāng)前路徑的文件夾

result = glob(target + '/*')
print(result)                   # 打印輸出當(dāng)前路徑的文件夾下的所有文件

result = glob(target + '/*.py')
print(result)                   # 打印輸出當(dāng)前路徑的文件夾下的所有以 "py" 結(jié)尾的文件

result = glob(target + '/*.zip')
print(result)                   # 打印輸出當(dāng)前路徑的文件夾下的所有以 "zip" 結(jié)尾的文件

result = glob(target + '/filetest*')
print(result)                   # # 打印輸出當(dāng)前路徑的文件夾下的所有以 "filetest" 開頭的文件

運(yùn)行結(jié)果如下:

查找指定的文件

已知條件:

想查找的文件名已經(jīng)知道,但是目錄在哪里并不知道。

實(shí)現(xiàn)方法:

利用 "glob" 從最上級(jí)目錄開始查找,利用遞歸模式,不斷的查找,直到找到為止。

代碼示例如下:

# coding:utf-8

import glob

"""
獲取當(dāng)前路徑下所有內(nèi)容
判斷每個(gè)內(nèi)容的類型(文件夾還是文件)
若是文件夾則繼續(xù)遞歸查找
"""

path = glob.os.path.join(glob.os.getcwd(), '*')     # 獲取當(dāng)前文件夾下的所有內(nèi)容
                                                    # glob 模塊其實(shí)已經(jīng)包含了 "os" 模塊
final_result = []       # 定義一個(gè)空列表,用以存儲(chǔ) search() 函數(shù)查到的內(nèi)容

def search(path, target):       # 定義 search() 函數(shù),傳入 "path" 文件路徑, "target" 要查找的目標(biāo)文件
    result = glob.glob(path)

    for data in result:         # for 循環(huán)判斷遞歸查到的內(nèi)容是文件夾還是文件
        if glob.os.path.isdir(data):    # 若是文件夾,繼續(xù)將該文件夾的路徑傳給 search() 函數(shù)繼續(xù)遞歸查找
            _path = glob.os.path.join(data, '*')
            search(_path, target)
        else:                           # 若是文件,則將該查詢到的文件所在路徑插入 final_result 空列表
            if target in data:
                final_result.append(data)
    return final_result


if __name__ == '__main__':
    result = search(path, target='filetest.py')
    print(result)

運(yùn)行結(jié)果如下:

基于文件內(nèi)容查找文件

接下來(lái)我們看一下查找指定內(nèi)容的文件:

已知條件:

文件中包含有某些關(guān)鍵字,但是不知道文件名和文件所在路徑

實(shí)現(xiàn)方法:

利用 "glob" 從最上級(jí)目錄開始查找,利用遞歸模式,不斷的查找。如果是文件夾則進(jìn)入繼續(xù)查找,是文件則讀取,判斷是否包含該內(nèi)容,返回該內(nèi)容的文件名以及所在路徑。

其實(shí),基于文件內(nèi)容查找文件實(shí)現(xiàn)的方式大體與上文的查找指定文件大體相似,只不過(guò)加入了讀取文件的判斷罷了。

代碼示例如下:

# coding:utf-8

import glob

"""
獲取當(dāng)前路徑下所有內(nèi)容
判斷每個(gè)內(nèi)容的類型(文件夾還是文件)
若是文件夾則繼續(xù)遞歸查找
"""

path = glob.os.path.join(glob.os.getcwd(), '*test04')     # 因?yàn)橄挛牟东@不可讀文件格式太多,所以這里直接指定了 "test04" 路徑
final_result = []       # 定義一個(gè)空列表,用以存儲(chǔ) search() 函數(shù)查到的內(nèi)容



def search(path, target):       # 定義 search() 函數(shù),傳入 "path" 文件路徑, "target" 要查找的目標(biāo)文件
    result = glob.glob(path)

    for data in result:         # for 循環(huán)判斷遞歸查到的內(nèi)容是文件夾還是文件
        if glob.os.path.isdir(data):    # 若是文件夾,繼續(xù)將該文件夾的路徑傳給 search() 函數(shù)繼續(xù)遞歸查找
            _path = glob.os.path.join(data, '*')
            search(_path, target)
        else:                           # 若是文件,則將該查詢到的文件所在路徑插入 final_result 空列表
            f = open(data, 'r')         # 利用 open() 函數(shù)讀取文件,并通過(guò) try...except... 捕獲不可讀的文件格式(.zip 格式)
            try:
                content = f.read()
                if target in content:
                    final_result.append(data)
            except:
                print('這是不可讀文件格式的文件的所在路徑:{} '.format(data))
                continue
            finally:
                f.close()
    return final_result


if __name__ == '__main__':
    result = search(path, target='測(cè)試文件')
    print(result)

運(yùn)行結(jié)果如下:

到此這篇關(guān)于Python基于文件內(nèi)容實(shí)現(xiàn)查找文件功能的文章就介紹到這了,更多相關(guān)Python文件查找內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python如何使用pathlib模塊處理文件路徑

    Python如何使用pathlib模塊處理文件路徑

    這篇文章主要介紹了Python如何使用pathlib模塊處理文件路徑,我們將從創(chuàng)建 Path 對(duì)象、絕對(duì)路徑與相對(duì)路徑、訪問(wèn)文件路徑分量,以及檢查文件路徑是否存在等幾個(gè)方面進(jìn)行講解,需要的朋友可以參考下
    2024-10-10
  • python如何寫個(gè)俄羅斯方塊

    python如何寫個(gè)俄羅斯方塊

    這篇文章主要介紹了python寫個(gè)俄羅斯方塊,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • 通過(guò)5個(gè)例子讓你學(xué)會(huì)Pandas中的字符串過(guò)濾

    通過(guò)5個(gè)例子讓你學(xué)會(huì)Pandas中的字符串過(guò)濾

    毋庸置疑Pandas是使用最廣泛的Python庫(kù)之一,它提供了許多功能和方法來(lái)執(zhí)行有效的數(shù)據(jù)處理和數(shù)據(jù)分析,下面這篇文章主要給大家介紹了關(guān)于如何通過(guò)5個(gè)例子讓你學(xué)會(huì)Pandas中字符串過(guò)濾的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • Python編程批量實(shí)現(xiàn)md5加密pdf文件

    Python編程批量實(shí)現(xiàn)md5加密pdf文件

    這篇文章主要介紹了Python編程批量實(shí)現(xiàn)md5加密pdf文件,文章基于python的相關(guān)資料展開詳細(xì)內(nèi)容介紹,具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-04-04
  • python+lunarcalendar庫(kù)實(shí)現(xiàn)使用農(nóng)歷日期

    python+lunarcalendar庫(kù)實(shí)現(xiàn)使用農(nóng)歷日期

    這篇文章主要為大家詳細(xì)介紹了python如何通過(guò)lunarcalendar庫(kù)實(shí)現(xiàn)使用農(nóng)歷日期,文中的示例代碼簡(jiǎn)潔易懂,有需要的小伙伴可以參考一下
    2024-11-11
  • python實(shí)現(xiàn)讀Excel寫入.txt的方法

    python實(shí)現(xiàn)讀Excel寫入.txt的方法

    下面小編就為大家分享一篇python實(shí)現(xiàn)讀Excel寫入.txt的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 詳解Python字典的運(yùn)算

    詳解Python字典的運(yùn)算

    這篇文章主要為大家介紹了Python字典的運(yùn)算 ,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2021-12-12
  • flask中過(guò)濾器的使用詳解

    flask中過(guò)濾器的使用詳解

    這篇文章主要介紹了flask中過(guò)濾器的使用詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-08-08
  • django 擴(kuò)展user用戶字段inlines方式

    django 擴(kuò)展user用戶字段inlines方式

    這篇文章主要介紹了django 擴(kuò)展user用戶字段inlines方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-03-03
  • Python 自動(dòng)登錄淘寶并保存登錄信息的方法

    Python 自動(dòng)登錄淘寶并保存登錄信息的方法

    這篇文章主要介紹了Python 自動(dòng)登錄淘寶并保存登錄信息的方法,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評(píng)論

莱阳市| 双峰县| 彩票| 抚顺县| 彩票| 荆门市| 江都市| 盐津县| 元朗区| 饶平县| 晋城| 松原市| 池州市| 宁化县| 遂平县| 桐乡市| 封开县| 武鸣县| 龙海市| 寻乌县| 盘锦市| 罗定市| 蒙城县| 平陆县| 南江县| 佛山市| 北京市| 天水市| 汕尾市| 安平县| 永丰县| 高台县| 宜黄县| 旺苍县| 濮阳县| 万年县| 灵武市| 咸丰县| 扎赉特旗| 东山县| 滕州市|