查找某文件夹下所有子文件夹内的py文件-3 一行代码搞定

简介: 转自:https://mp.weixin.qq.com/s/FFXh8gRci4hMo6_gnBMPUg       工作中,有时会产生查找某一类文件的需求,比如log文件。或者在做图像类深度学习时,需要读取大类文件夹下,所有小类文件夹下的图片。

转自:https://mp.weixin.qq.com/s/FFXh8gRci4hMo6_gnBMPUg


      工作中,有时会产生查找某一类文件的需求,比如log文件。或者在做图像类深度学习时,需要读取大类文件夹下,所有小类文件夹下的图片。专门为这个需求写一个函数太耽误时间。所以,今天分享一个我工作中遇到的第三方库imutils,并分享一下我对源码的理解。


from imutils import paths


# 要在哪条路径下查找

path = '...'


# 查找图片,得到图片路径

imagePaths = list(imutils.paths.list_images(basePath=path))


# 所有py文件,得到py文件路径

imagePaths = list(imutils.paths.list_files(basePath=path,,validExts=('.py')))


# 源码解读

def list_files(basePath, validExts=(".jpg", ".jpeg", ".png", ".bmp", ".tif", ".tiff"), contains=None):

# loop over the directory structure

for (rootDir, dirNames, filenames) in os.walk(basePath):

# loop over the filenames in the current directory

for filename in filenames:

# if the contains string is not none and the filename does not contain

# the supplied string, then ignore the file

if contains is not None and filename.find(contains) == -1:

continue


# determine the file extension of the current file

ext = filename[filename.rfind("."):].lower()


# check to see if the file is an image and should be processed

if ext.endswith(validExts):

# construct the path to the image and yield it

imagePath = os.path.join(rootDir, filename).replace(" ", "\\ ")

yield imagePath


参数contains表示找到给定路径下,给定后缀文件类型,文件名中包含contains提供字段的文件

rfind() 返回字符串最后一次出现的位置(从右向左查询),如果没有匹配项则返回-1

ext = filename[filename.rfind("."):].lower() 将文件后缀转换成小写

ext.endswith(validExts) 匹配后缀,将文件路径中的空字符串" ",转化为"\\ "



转自:https://mp.weixin.qq.com/s/FFXh8gRci4hMo6_gnBMPUg


目录
相关文章
|
2月前
如何从多个文件夹里各提取相应数量的文件放一起到新文件夹中形成多文件夹组合
该文介绍了一个工具的使用方法,通过它可以从多个文件夹中批量提取并合并文件。文中提供了两个下载链接(度娘网盘和蓝奏云)并附有提取码。工具主要用于平均分配文件到指定文件夹,例如将100张图片平均放入50个文件夹,每个文件夹2张。操作步骤包括创建目标文件夹、添加源文件夹路径、启用“平均复制”选项,然后执行任务。最后,展示了操作完成后文件夹内的正确分布情况。
62 10
|
2月前
|
Unix Linux 数据处理
使用Python批量复制文件夹及其子文件夹下的指定文件
使用Python批量复制文件夹及其子文件夹下的指定文件
56 1
|
2月前
|
定位技术 索引 Python
Python遍历多个子文件夹并基于文件名特征将文件复制到不同的目标文件夹
Python遍历多个子文件夹并基于文件名特征将文件复制到不同的目标文件夹
|
2月前
|
定位技术 Python
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
Python依据某一文件夹中大量文件的名称复制另一文件夹中的同名文件
|
存储 Python
Python怎样统计文件夹(包括子文件夹)中文件的个数?
本文介绍基于Python语言,统计文件夹中文件数量;若其含有子文件夹,还将对各子文件夹中的文件数量一并进行统计的方法~
515 1
|
测试技术 Python
一日一技:导入父文件夹中的模块并读取当前文件夹内的资源
一日一技:导入父文件夹中的模块并读取当前文件夹内的资源
101 0
|
JSON 数据格式
批量遍历指定类型的文件及文件夹,并将其复制到新的文件夹
批量遍历指定类型的文件及文件夹,并将其复制到新的文件夹
91 0
文件和文件夹的操作——文件夹的操作
文件和文件夹的操作——文件夹的操作
107 0
文件和文件夹的操作——文件夹的操作
|
开发框架 .NET Windows
文件和文件夹的操作——获取当前路径方法
文件和文件夹的操作——获取当前路径方法
250 0