如何统计指定文件夹内图片总数?代码问题排查与解决
问题原因
你写的len(path)计算的是路径字符串的字符个数,输出的54就是"/content/drive/MyDrive/iuxray/images/images_normalized"这个字符串的长度,和文件夹里的图片数量没有任何关系。
正确统计方法
以下是几种Python环境下的可行方案,根据你的需求选择:
方案1:使用os模块(基础方法)
如果文件夹里只有图片文件(没有子文件夹或其他非图片文件),可以直接遍历目录统计:
import os path = "/content/drive/MyDrive/iuxray/images/images_normalized" # 只统计图片(过滤常见图片后缀,同时排除子文件夹) image_extensions = ('.jpg', '.jpeg', '.png', '.bmp', '.gif') total_images = len([ f for f in os.listdir(path) if f.lower().endswith(image_extensions) and os.path.isfile(os.path.join(path, f)) ]) print(f"Number of images: {total_images}")
方案2:使用glob模块(更精准匹配图片)
glob模块可以直接按文件后缀匹配,用法更简洁:
import glob path = "/content/drive/MyDrive/iuxray/images/images_normalized" # 匹配当前目录下所有图片文件(不包含子文件夹) image_paths = glob.glob(f"{path}/*.jpg") + glob.glob(f"{path}/*.jpeg") + glob.glob(f"{path}/*.png") # 如果需要递归统计子文件夹里的图片,加上recursive=True # image_paths = glob.glob(f"{path}/**/*.jpg", recursive=True) + glob.glob(f"{path}/**/*.png", recursive=True) total_images = len(image_paths) print(f"Number of images: {total_images}")
注意事项
- 如果文件夹包含子文件夹,需要明确是否要统计子文件夹内的图片,对应开启递归逻辑即可。
- 图片后缀可能存在大小写差异(比如
.JPG和.jpg),方案1里的lower()方法可以统一处理这种情况。
内容的提问来源于stack exchange,提问作者user19686684
相关产品推荐
相关产品推荐

