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

遍历读取文件夹中pickle模型时反复报错,寻求解决方案

问题分析与解决方案

核心问题

你的代码存在两个关键错误,导致无法读取模型文件:

  1. 路径格式化失效:路径字符串未正确替换lowerCount变量,实际访问的是带{lowerCount}字面量的无效路径,触发文件找不到的错误。
  2. 变量未初始化:lowermodel未预先定义为列表/字典,直接用lowermodel[i]会引发未定义错误。

修正后的代码

方案1:按固定数量读取(适配0-18命名的文件)

import pickle
import os

# 定义文件夹路径
folder_path = "/Users/rama/Desktop/lowermodels"
# 初始化存储模型的列表
lowermodel = []

# 遍历19个模型文件
for count in range(19):
    # 拼接正确的文件路径(自动适配系统分隔符)
    file_path = os.path.join(folder_path, f"{count}.sav")
    # 用with语句安全读取模型,自动关闭文件
    with open(file_path, 'rb') as f:
        model = pickle.load(f)
        lowermodel.append(model)

方案2:遍历文件夹所有.sav文件(更灵活,无需硬编码数量)

import pickle
import os

folder_path = "/Users/rama/Desktop/lowermodels"
lowermodel = []

# 自动遍历文件夹中所有.sav格式的模型文件
for filename in os.listdir(folder_path):
    if filename.endswith(".sav"):
        file_path = os.path.join(folder_path, filename)
        with open(file_path, 'rb') as f:
            model = pickle.load(f)
            lowermodel.append(model)

注意事项

  • 如果你的文件名是1.sav到19.sav,请把方案1中的range(19)改为range(1,20)。
  • 使用os.path.join拼接路径,能避免不同操作系统路径分隔符的兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 16:05:26