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è)列表的形式返回。類(lèi)似于 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將紅底證件照轉(zhuǎn)成藍(lán)底的實(shí)現(xiàn)方法
這篇文章主要介紹了python將紅底證件照轉(zhuǎn)成藍(lán)底,本文給大家分享四種方法通過(guò)示例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析
這篇文章主要介紹了Python字典推導(dǎo)式將cookie字符串轉(zhuǎn)化為字典解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-08-08Python Pandas讀寫(xiě)txt和csv文件的方法詳解
這篇文章主要為大家詳細(xì)介紹了Python Pandas實(shí)現(xiàn)讀寫(xiě)txt和csv文件查找的方法,文中的示例代碼積極性,感興趣的小伙伴可以跟隨小編一起了解一下2022-09-09Python 使用 Pillow 模塊給圖片添加文字水印的方法
這篇文章主要介紹了Python 使用 Pillow 模塊給圖片添加文字水印的方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08python數(shù)據(jù)抓取分析的示例代碼(python + mongodb)
本篇文章主要介紹了python數(shù)據(jù)抓取分析的示例代碼(python + mongodb),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-12-12講解Python中運(yùn)算符使用時(shí)的優(yōu)先級(jí)
這篇文章主要介紹了講解Python中運(yùn)算符使用時(shí)的優(yōu)先級(jí),是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),需要的朋友可以參考下2015-05-05Python?ORM框架之SQLAlchemy?的基礎(chǔ)用法
這篇文章主要介紹了Python?ORM框架之SQLAlchemy?的基礎(chǔ)用法,ORM全稱(chēng)?Object?Relational?Mapping對(duì)象關(guān)系映射,更多詳細(xì)內(nèi)容需要的小伙伴課題參考下面文章介紹。希望對(duì)你的學(xué)習(xí)有所幫助2022-03-03Python調(diào)用Jar包的兩種方式小結(jié)
這篇文章主要介紹了Python調(diào)用Jar包的兩種方式小結(jié),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12