Python?提供了一些庫,可以幫助我們實(shí)現(xiàn)文件夾遍歷。在本文中,我將介紹三種常用的遍歷文件夾的方法,并且給出每種方法的使用示例和優(yōu)缺點(diǎn)分析。
方法一:os.walk()
?os.walk() 是?Python?中最常用的遍歷文件夾的方法。這個方法會自動地遞歸遍歷文件夾中的所有子文件夾。在遍歷過程中,返回的是一個元組(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() 能夠自動遍歷文件夾下的子文件夾,無需手動遞歸。
缺點(diǎn):對于大型文件夾,os.walk() 會占用大量的內(nèi)存,因為它需要把所有的文件都存儲在內(nèi)存中,會導(dǎo)致程序崩潰。
方法二:os.listdir()
os.listdir() 是 Python 中另一種常用的遍歷文件夾的方法。這個方法會返回指定路徑下的所有文件和文件夾的列表,但是不會遞歸遍歷。
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() 不會遞歸遍歷,如果需要遞歸遍歷的話,還需要在函數(shù)中加入遞歸操作。
方法三:glob.glob()
glob.glob() 是 Python 中一種使用比較少見的遍歷文件夾的方法。這個方法會根據(jù)指定的文件名模式匹配到的所有文件和文件夾,并以一個列表的形式返回。類似于 os.listdir(),不會遞歸遍歷。
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() 使用簡單,代碼量少。
缺點(diǎn):glob.glob() 不會遞歸遍歷,如果需要遞歸遍歷的話,還需要在函數(shù)中加入遞歸操作。
結(jié)論
? ? ? ?以上就是三種常用的 Python 遍歷文件夾的方法。在實(shí)際使用中,我們可以根據(jù)具體情況選擇不同的方法來實(shí)現(xiàn)文件夾的遍歷。如果需要遞歸遍歷,建議使用 os.walk() 方法,如果只需要遍歷當(dāng)前文件夾,建議使用 os.listdir() 或 glob.glob() 方法。文章來源:http://www.zghlxwxcb.cn/news/detail-838955.html
?文章來源地址http://www.zghlxwxcb.cn/news/detail-838955.html
到了這里,關(guān)于python 各種遍歷文件夾的方法的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!