python遍歷文件夾的各種方法大全
前言
Python 提供了一些庫(kù),可以幫助我們實(shí)現(xiàn)文件夾遍歷。在本文中,我將介紹三種常用的遍歷文件夾的方法,并且給出每種方法的使用示例和優(yōu)缺點(diǎn)分析。
方法一:os.walk()
os.walk() 是 Python 中最常用的遍歷文件夾的方法。這個(gè)方法會(huì)自動(dòng)地遞歸遍歷文件夾中的所有子文件夾。在遍歷過(guò)程中,返回的是一個(gè)元組(root, dirs, files),其中 root 表示當(dāng)前遍歷到的文件夾的路徑,dirs 表示當(dāng)前文件夾下的子文件夾,files 表示當(dāng)前文件夾下的所有文件。
import os
# 遍歷文件夾
def traversal_folder(folder_path):
for root, dirs, files in os.walk(folder_path):
# 遍歷當(dāng)前文件夾下的所有文件
for file_name in files:
file_path = os.path.join(root, file_name)
print(file_path)
# 調(diào)用函數(shù)
folder_path = r"D:\data"
traversal_folder(folder_path)
優(yōu)點(diǎn):os.walk() 能夠自動(dòng)遍歷文件夾下的子文件夾,無(wú)需手動(dòng)遞歸。
缺點(diǎn):對(duì)于大型文件夾,os.walk() 會(huì)占用大量的內(nèi)存,因?yàn)樗枰阉械奈募即鎯?chǔ)在內(nèi)存中,會(huì)導(dǎo)致程序崩潰。
方法二:os.listdir()
os.listdir() 是 Python 中另一種常用的遍歷文件夾的方法。這個(gè)方法會(huì)返回指定路徑下的所有文件和文件夾的列表,但是不會(huì)遞歸遍歷。
import os
# 遍歷文件夾
def traversal_folder(folder_path):
for file_name in os.listdir(folder_path):
file_path = os.path.join(folder_path, file_name)
print(file_path)
# 調(diào)用函數(shù)
folder_path = r"D:\data"
traversal_folder(folder_path)
優(yōu)點(diǎn):os.listdir() 執(zhí)行速度比 os.walk() 更快。
缺點(diǎn):os.listdir() 不會(huì)遞歸遍歷,如果需要遞歸遍歷的話,還需要在函數(shù)中加入遞歸操作。
方法三:glob.glob()
glob.glob() 是 Python 中一種使用比較少見(jiàn)的遍歷文件夾的方法。這個(gè)方法會(huì)根據(jù)指定的文件名模式匹配到的所有文件和文件夾,并以一個(gè)列表的形式返回。類似于 os.listdir(),不會(huì)遞歸遍歷。
import glob
# 遍歷文件夾
def traversal_folder(folder_path):
for file_path in glob.glob(os.path.join(folder_path, '*')):
print(file_path)
# 調(diào)用函數(shù)
folder_path = r"D:\data"
traversal_folder(folder_path)
優(yōu)點(diǎn):glob.glob() 使用簡(jiǎn)單,代碼量少。
缺點(diǎn):glob.glob() 不會(huì)遞歸遍歷,如果需要遞歸遍歷的話,還需要在函數(shù)中加入遞歸操作。
結(jié)論
以上就是三種常用的 Python 遍歷文件夾的方法。在實(shí)際使用中,我們可以根據(jù)具體情況選擇不同的方法來(lái)實(shí)現(xiàn)文件夾的遍歷。如果需要遞歸遍歷,建議使用 os.walk() 方法,如果只需要遍歷當(dāng)前文件夾,建議使用 os.listdir() 或 glob.glob() 方法。
到此這篇關(guān)于python遍歷文件夾的各種方法大全的文章就介紹到這了,更多相關(guān)python遍歷文件夾內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)敲木魚(yú)加功德包含加音效和敲擊動(dòng)作(附demo)
敲木魚(yú)加功德是一款很火的動(dòng)畫,本文主要介紹了python實(shí)現(xiàn)敲木魚(yú)加功德包含加音效和敲擊動(dòng)作,具有一定的參考價(jià)值,感興趣的可以了解一下2023-11-11
python使用正則表達(dá)式分析網(wǎng)頁(yè)中的圖片并進(jìn)行替換的方法
這篇文章主要介紹了python使用正則表達(dá)式分析網(wǎng)頁(yè)中的圖片并進(jìn)行替換的方法,涉及Python使用正則表達(dá)式的技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-03-03
Pytorch在NLP中的簡(jiǎn)單應(yīng)用詳解
今天小編就為大家分享一篇Pytorch在NLP中的簡(jiǎn)單應(yīng)用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01
Python爬蟲(chóng)工具requests-html使用解析
這篇文章主要介紹了Python爬蟲(chóng)工具requests-html使用解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04
python使用super()出現(xiàn)錯(cuò)誤解決辦法
這篇文章主要介紹了python使用super()出現(xiàn)錯(cuò)誤解決辦法的相關(guān)資料,對(duì)于TypeError: must be type, not classobj的錯(cuò)誤進(jìn)行處理,需要的朋友可以參考下2017-08-08
通過(guò)字符串導(dǎo)入 Python 模塊的方法詳解
這篇文章主要介紹了通過(guò)字符串導(dǎo)入 Python 模塊的方法詳解,本文通過(guò)實(shí)例結(jié)合,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-10-10
詳解Python?Flask?API?示例演示(附cookies和session)
這篇文章主要為大家介紹了Python?Flask?API?示例演示(附cookies和session)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03

