一、获取目录下指定类型的
的文件,返回一个列表
#无递归:
def Dirfile(srcdir ,file_ext):
filelist = []
dstlist = []
filelist.append(srcdir)
while len(filelist) != 0:
tmpdir = filelist.pop()
if os.path.isdir(tmpdir):
tmpvec = os.listdir(tmpdir)
for tmpitem in tmpvec:
filelist.append(tmpdir + "\\" + tmpitem)
else:
if os.path.isfile(tmpdir):
if os.path.splitext(tmpdir)[1] == file_ext:
dstlist.append(tmpdir)
return dstlist
#有递归:
def dst_dir_file(file_path, file_ext= ".txt", list = []):
for item in os.listdir(file_path):
path = os.path.join(file_path, item)
if os.path.isdir(path):
dst_dir_file(path, file_ext, list)
if path.endswith(file_ext):
list.append(path)
二、获取目录下指定文件夹下指定类型的文件,返回一个列表
def Finddirfile(srcdir, dstdir, fileext):
filelist = []
dstlist = []
resultlist = []
filelist.append(srcdir)
while len(filelist) != 0:
tmpdir = filelist.pop(0)
if os.path.isdir(tmpdir):
tmpvec = os.listdir(tmpdir)
for tmpitem in tmpvec:
filelist.append(tmpdir + "\\" + tmpitem)
if os.path.split(tmpdir)[1] == dstdir:
for item in os.listdir(tmpdir):
dstlist.append(tmpdir + "\\" + item)
while len(dstlist) != 0:
tmpdst = dstlist.pop(0)
if os.path.isdir(tmpdst):
for tempdst in os.listdir(tmpdst):
dstlist.append(tmpdst + "\\" + tempdst)
else:
if os.path.isfile(tmpdst):
if os.path.splitext(tmpdst)[1] == fileext:
resultlist.append(tmpdst)
if len(resultlist) != 0:
return resultlist
else:
return resultlist
三、获取当前文件夹(一级目录不遍历)下指定多个类型的文件,返回一个列表
import os
img_type = ['.jpg','.JPG','.png','.PNG','.bmp','.BMP']#类型
img_path = ""#路径
img_path_vec = [os.path.join(img_path,imgpath) for imgpath in os.listdir(img_path) if os.path.splitext(imgpath)[1] in img_type]
最后,推荐使用glob2,支持正则通配符,一句代码简单搞定!
import glob2
path_vec = glob2.glob(r'D:\data\zp\*.jpg')