如何使用glob从多文件夹中批量获取指定后缀的JPG文件?
解决glob仅返回单个JPG文件的问题
文件夹结构
Images ├─1.jpg ├─Yellow │ ├─yellow1.jpg │ ├─yellow2.jpg │ └─yellow1.csv ├─Blue │ └─blue1.jpg ├─Orange └─Purple ├─purple1.jpg ├─purple2.jpg └─purple.csv
问题描述
需要从Images主目录及其子文件夹中获取所有JPG文件,使用以下代码仅返回最后一个文件['../../../../Images/purple2.jpg'],期望得到所有JPG文件路径列表:['../../../../Images/yellow1.jpg','../../../../Images/yellow2.jpg','../../../../Images/blue1.jpg','../../../../Images/purple1.jpg','../../../../Images/purple2.jpg']
原代码:
import glob input_dir=r'../../../../Images' files=glob.glob(input_dir+"/**/*.jpg")
解决方案
问题出在glob.glob的**递归匹配默认未开启,必须添加recursive=True参数,才能让**模式递归遍历所有子文件夹。修正后的代码如下:
import glob input_dir=r'../../../../Images' files=glob.glob(input_dir+"/**/*.jpg", recursive=True)
执行后会返回所有符合条件的JPG文件路径,包含主目录下的1.jpg。如果需要排除主目录的JPG,只保留子文件夹中的文件,可以调整匹配模式:
files=glob.glob(input_dir+"/**/*/*.jpg", recursive=True)
这样就能得到你期望的仅包含子文件夹中JPG的路径列表。
内容的提问来源于stack exchange,提问作者Bhawna_priya
相关产品推荐
相关产品推荐

