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

使用Python遍歷文件夾實(shí)現(xiàn)查找指定文件夾

 更新時(shí)間:2022年07月28日 16:28:06   作者:將沖破艾迪i  
這篇文章主要為大家介紹了如何使用Python遍歷文件夾從而實(shí)現(xiàn)查找指定文件夾下所有相同名稱的文件、所有相同后綴名的文件,感興趣的可以了解一下

1. 文件夾結(jié)構(gòu)

指定文件夾:E:/Code/Python/test

指定文件:test.txt

指定文件夾下的目錄及文件:

文件夾a:

a.txt

test.txt

文件夾txt:

test.txt

文件b.txt

test.py

test.txt

2. 查找指定文件夾下指定文件

import os

# 查找該層文件夾下指定文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath) # 查找該層文件夾下所有的文件及文件夾,返回列表
    for currentFile in dirs: # 遍歷列表
        absPath = dirPath + '/' + currentFile # 文件的絕對路徑
        if currentFile == fileName:
             print(absPath) 
           
if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    fileName = 'test.txt'
    search_file(dirPath, fileName)
              

執(zhí)行結(jié)果:

E:/Code/Python/test/test.txt

3. 查找指定文件夾下所有相同名稱的文件

import os

# 查找指定文件夾下所有相同名稱的文件
def search_file(dirPath, fileName):
    dirs = os.listdir(dirPath) # 查找該層文件夾下所有的文件及文件夾,返回列表
    for currentFile in dirs: # 遍歷列表
        absPath = dirPath + '/' + currentFile 
        if os.path.isdir(absPath): # 如果是目錄則遞歸,繼續(xù)查找該目錄下的文件
            search_file(absPath, fileName)
        elif currentFile == fileName:
            print(absPath) # 文件存在,則打印該文件的絕對路徑

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    fileName = 'test.txt'
    search_file(dirPath, fileName)

執(zhí)行結(jié)果:

E:/Code/Python/test/a/test.txt
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt

4. 查找指定文件夾下所有相同后綴名的文件

import os

# 查找指定文件夾下所有相同后綴名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后綴名相同,則打印該文件的絕對路徑
            print(absPath)

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    suffix = 'txt'
    search_file_suffix(dirPath, suffix)
      

執(zhí)行結(jié)果:

E:/Code/Python/test/a/a.txt
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt

以下是需要注意的避坑點(diǎn):

1.注意避坑 - 遞歸函數(shù)的位置:查找相同后綴名的文件時(shí),遞歸調(diào)用必須放在if里,而不能放在elif里,否則當(dāng)文件夾名稱與文件后綴名相同時(shí),會(huì)出錯(cuò)。

如:查找txt后綴的文件,剛好又有一個(gè)txt的文件夾,因?yàn)檫f歸放在了elif里,那么遍歷會(huì)停在txt文件夾,而不去遍歷txt文件夾里的內(nèi)容。

import os

# 查找指定文件夾下所有相同后綴名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后綴名相同,則打印該文件的絕對路徑
            print(absPath)

def search_file_suffix_temp(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if currentFile.split('.')[-1] == suffix: 
            print(absPath)
        elif os.path.isdir(absPath): # 遞歸判斷放在elif里
            search_file_suffix_temp(absPath, suffix)

if __name__ == "__main__":
    dirPath = 'E:/Code/Python/test'
    suffix = 'txt'
    search_file_suffix(dirPath, suffix)
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    search_file_suffix_temp(dirPath, suffix)

執(zhí)行結(jié)果:

E:/Code/Python/test/a/a.txt
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt    
E:/Code/Python/test/txt/test.txt
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/Code/Python/test/a/a.txt     
E:/Code/Python/test/a/test.txt  
E:/Code/Python/test/b.txt       
E:/Code/Python/test/test.txt
E:/Code/Python/test/txt

2.注意避坑 - .vscode文件夾:在使用vscode打開文件夾時(shí),會(huì)自動(dòng)生成.vscode文件夾,如果查找文件的時(shí)候不想查找這些配置文件夾里的文件,那么需要在判斷文件夾后,再加一層判斷,遇到.vscode或者其他配置文件夾就跳過。

import os
from fnmatch import fnmatchcase

# 查找指定文件夾下所有相同后綴名的文件
def search_file_suffix(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: # 文件后綴名相同,則打印該文件的絕對路徑
            print(absPath)

def search_file_suffix_temp(dirPath, suffix):
    dirs = os.listdir(dirPath)
    for currentFile in dirs:
        absPath = dirPath + '/' + currentFile
        if os.path.isdir(absPath):
            if fnmatchcase(currentFile,'.*'): # 如果文件夾是.vscode或者其他.開頭的文件夾,就跳過
                pass
            else:
                search_file_suffix(absPath, suffix)
        elif currentFile.split('.')[-1] == suffix: 
            print(absPath)

if __name__ == "__main__":
    dirPath = 'E:/Code/python/test'
    suffix = 'json'
    search_file_suffix(dirPath, suffix)
    print("~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~")
    search_file_suffix_temp(dirPath, suffix)    

執(zhí)行結(jié)果:

E:/Code/python/test/.vscode/settings.json
E:/Code/python/test/a.json
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
E:/Code/python/test/a.json

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

相關(guān)文章

  • 用python實(shí)現(xiàn)彈球小游戲

    用python實(shí)現(xiàn)彈球小游戲

    大家好,本篇文章主要講的是用python實(shí)現(xiàn)彈球小游戲,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-01-01
  • Python字典中items()函數(shù)案例詳解

    Python字典中items()函數(shù)案例詳解

    這篇文章主要介紹了Python字典中items()函數(shù)案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 基于Python實(shí)現(xiàn)PPT合并小工具

    基于Python實(shí)現(xiàn)PPT合并小工具

    在日常工作和學(xué)習(xí)中,如果需要將多個(gè)PPT文件合并成一個(gè)文件,手動(dòng)操作可能會(huì)非常繁瑣和耗時(shí),所以本文將使用Python制作一個(gè)簡單的PPT合并小工具,希望對大家有所幫助
    2024-01-01
  • OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn)

    OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn)

    今天小編就為大家分享一篇OpenCV+Python--RGB轉(zhuǎn)HSI的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜

    這篇文章主要介紹了Python爬蟲之爬取嗶哩嗶哩熱門視頻排行榜,文中有非常詳細(xì)的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-04-04
  • 基于Python編寫一個(gè)詞云制作程序

    基于Python編寫一個(gè)詞云制作程序

    這篇文章主要為大家詳細(xì)介紹了如何基于Python編寫一個(gè)簡單的詞云制作程序,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解一下
    2023-10-10
  • 對python pandas讀取剪貼板內(nèi)容的方法詳解

    對python pandas讀取剪貼板內(nèi)容的方法詳解

    今天小編就為大家分享一篇對python pandas讀取剪貼板內(nèi)容的方法詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • Flask框架請求鉤子與request請求對象用法實(shí)例分析

    Flask框架請求鉤子與request請求對象用法實(shí)例分析

    這篇文章主要介紹了Flask框架請求鉤子與request請求對象用法,結(jié)合實(shí)例形式詳細(xì)分析了Flask框架請求鉤子與request請求對象相關(guān)原理、用法及操作注意事項(xiàng),需要的朋友可以參考下
    2019-11-11
  • Python八個(gè)自動(dòng)化辦公的技巧

    Python八個(gè)自動(dòng)化辦公的技巧

    這篇文章主要介紹了幾個(gè)Python自動(dòng)化辦公的技巧,可以大大提高工作效率,例如:Word文檔doc轉(zhuǎn)docx、Excel文件批量合并、Word文件批量轉(zhuǎn)pdf等,需要的可以參考一下
    2022-01-01
  • 基于python進(jìn)行抽樣分布描述及實(shí)踐詳解

    基于python進(jìn)行抽樣分布描述及實(shí)踐詳解

    這篇文章主要介紹了基于python進(jìn)行抽樣分布描述及實(shí)踐詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-09-09

最新評論

江达县| 钟山县| 乌拉特中旗| 永城市| 三门峡市| 诏安县| 习水县| 抚远县| 株洲市| 梁平县| 永仁县| 凯里市| 扎囊县| 保山市| 海口市| 合江县| 阿图什市| 临泉县| 扬州市| 望都县| 棋牌| 东乌| 甘孜县| 增城市| 兴化市| 呼伦贝尔市| 神农架林区| 普安县| 成武县| 确山县| 临西县| 清新县| 凉城县| 兰州市| 连云港市| 彰化市| 巨野县| 肥乡县| 绵竹市| 广灵县| 浪卡子县|