无法加载 pickle 文件

Unable to load pickle file

我以前能够加载 pickle 文件。我以不同的名称保存了一个新文件。我无法加载旧文件或新文件。这是一个无赖,因为它包含我努力擦除的数据。

这是我用来保存的代码:

def pickleStore():
    pickle.dump(store, open("...shelf3.p", "wb"))

这是我用来重新加载的代码:

def pickleLoad():
    store = pickle.load(open(".../shelf3.p","rb" ) )

创建的文件存在,我运行 pickleLoad() 没有出现错误,面板变量资源管理器中也没有显示任何变量。如果我尝试加载一个不存在的文件,我会收到一条错误消息。

我是运行ning spyder,python3.5.

有什么建议吗?

作为一种通用且更通用的方法,我建议如下:

def load(file_name):
    with open(simulation, 'rb') as pickle_file:
        return pickle.load(pickle_file)

def save(file_name, data):
    with open(file_name, 'wb') as f:
        pickle.dump(data, f)

我已将此代码段添加到多个项目中,以减少多次重写相同的代码。

如果要从函数写入模块级变量,需要使用global关键字:

store = None

def pickleLoad():
    global store
    store = pickle.load(open(".../shelf3.p","rb" ) )

...或 return 值并从模块级代码执行赋值:

store = None

def pickleLoad():
    return pickle.load(open(".../shelf3.p","rb" ) )

store = pickleLoad()