我们有时候需要获得某个文件夹下具有某个扩展名的所有文件,比如在某个数据文件夹下返回所有.jpg扩展名的图片,本文讲解如何遍历整个文件夹并定位具有相同扩展名的文件
1.如何遍历整个文件夹
import os
dir="C:\\Users\\wuyanzu" #文件夹名称
filelist=[]
for i in os.listdir(dir): #遍历整个文件夹
path = os.path.join(dir, i)
if os.path.isfile(path): #判断是否为一个文件,排除文件夹
filelist.append(i)
for i in filelist:
print(i)
如果将子文件夹也遍历的话,需加一个递归:
import os
def CrossOver(dir,fl):
for i in os.listdir(dir): #遍历整个文件夹
path = os.path.join(dir, i)
if os.path.isfile(path): #判断是否为一个文件,排除文件夹
fl.append(i)
elif os.path.isdir(path):
newdir=path
CrossOver(newdir,fl)
return fl
directory="C:\\Users\\waq\\Pictures\\Saved Pictures" #文件夹名称
filelist=[]
output=CrossOver(directory,filelist)
for i in output:
print(i)
2.获得指定扩展名的所有文件
以“.jpg”为扩展名,不遍历子文件夹为例:
dir="C:\\Users\\waq\\Pictures\\Saved Pictures" #文件夹名称
filelist=[]
for i in os.listdir(dir): #遍历整个文件夹
path = os.path.join(dir, i)
if os.path.isfile(path): #判断是否为一个文件,排除文件夹
if os.path.splitext(path)[1]==".jpg": #判断文件扩展名是否为“.jpg”
filelist.append(i)
for i in filelist:
print(i)
判断文件扩展名详细功能可点这查询。