Python如何读取任意文件夹内全部图片(无需统一文件名格式)
嘿,这个需求很实用呀!不用管文件名格式的话,有两种简单靠谱的方法可以实现,我给你详细说说~
方法一:用
glob模块快速匹配图片 glob模块专门用来匹配文件路径,能直接根据后缀筛选图片,写法超简洁,不用手动遍历:
import glob import os # 替换成你的目标文件夹路径 PATH_TO_TEST_IMAGES_DIR = 'your_target_folder' # 匹配常见图片格式,支持大小写(比如JPG、jpg、Png都能识别) TEST_IMAGE_PATHS = [] # 逐个添加需要匹配的格式,可按需增减 TEST_IMAGE_PATHS += glob.glob(os.path.join(PATH_TO_TEST_IMAGES_DIR, '*.[Jj][Pp][Gg]')) TEST_IMAGE_PATHS += glob.glob(os.path.join(PATH_TO_TEST_IMAGES_DIR, '*.[Pp][Nn][Gg]')) TEST_IMAGE_PATHS += glob.glob(os.path.join(PATH_TO_TEST_IMAGES_DIR, '*.[Jj][Pp][Ee][Gg]'))
要是想更精简,也可以用正则风格的匹配一次性搞定:
TEST_IMAGE_PATHS = glob.glob(os.path.join(PATH_TO_TEST_IMAGES_DIR, '*.[JjPp][PpNn][GgEe]*'))
方法二:用
os.listdir遍历+后缀筛选 这种方法更灵活,你可以自定义更多筛选规则(比如排除隐藏文件、过滤特定大小的文件等):
import os PATH_TO_TEST_IMAGES_DIR = 'your_target_folder' # 定义需要识别的图片后缀,可根据需求添加(比如.bmp、.gif) IMAGE_EXTENSIONS = ('.jpg', '.jpeg', '.png') TEST_IMAGE_PATHS = [] # 遍历文件夹内所有文件 for filename in os.listdir(PATH_TO_TEST_IMAGES_DIR): # 拼接完整路径,确保是文件不是子文件夹(可选,避免误读文件夹) file_path = os.path.join(PATH_TO_TEST_IMAGES_DIR, filename) if os.path.isfile(file_path) and filename.lower().endswith(IMAGE_EXTENSIONS): TEST_IMAGE_PATHS.append(file_path)
两种方法都能完美实现“不管文件名格式,读取所有图片”的需求,你可以根据自己的场景选~
内容的提问来源于stack exchange,提问作者Huyen
相关产品推荐
相关产品推荐

