You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在for循环中使用pims.open()处理多层子文件夹下的图像

问题根因
  • os.walk返回的name仅为子文件夹的纯名称,不包含上层根目录路径,直接拼接/*.jpg生成的是相对路径,程序会从当前运行脚本的工作目录下查找该子文件夹,和实际存储位置不匹配,因此报错找不到文件。
  • 你原代码中os.path.join(root, name)才是子文件夹的完整路径(原代码误写为未定义的subdirectory变量),你之前的写法没有用到这个完整路径构造图像匹配规则。
修复后可直接运行的代码
import os
import pims

# 替换为你自己的根目录路径
root_path = '/file_path'

for root, directories, files in os.walk(root_path, topdown=False):
    for dir_name in directories:
        # 生成子文件夹的完整绝对路径
        full_subdir_path = os.path.join(root, dir_name)
        # 拼接jpg文件的匹配规则
        img_path_rule = os.path.join(full_subdir_path, "*.jpg")
        # 读取该子文件夹下的所有jpg图像
        img_set = pims.open(img_path_rule)
        # 下方填写你自己的处理逻辑即可
        # 示例:打印当前子文件夹读取到的图像数量
        print(f"已读取{full_subdir_path}下共{len(img_set)}张图像")
额外注意事项
  • 如果你的图像同时存在.jpg和.jpeg两种后缀,可以将匹配规则修改为*.jp*g兼容两种格式
  • 若仍存在路径错误,可在调用pims.open()前添加print(img_path_rule),将打印的路径和实际文件存储路径对比,即可快速定位拼接错误

内容的提问来源于stack exchange,提问作者Arti Tyagi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 09:12:01