Python 我可以直接加载我想要的对象,跳过系列中的其他对象,用于pickle文件吗

Python 我可以直接加载我想要的对象,跳过系列中的其他对象,用于pickle文件吗,python,pickle,Python,Pickle,我想解开一件我在许多其他人后面腌制过的东西。我想知道我是否可以直接加载这个 我将几个对象pickle为: with open(filename, 'wb') as f: pickle.dump(A_object, f) pickle.dump(B_object, f) pickle.dump(C_object, f) 现在在另一个代码中,我想加载C_对象,所以我要: with open(filename, ‘rb’) as f: pickle.load(f)

我想解开一件我在许多其他人后面腌制过的东西。我想知道我是否可以直接加载这个

我将几个对象pickle为:

with open(filename, 'wb') as f:
    pickle.dump(A_object, f)
    pickle.dump(B_object, f)
    pickle.dump(C_object, f)
现在在另一个代码中,我想加载C_对象,所以我要:

with open(filename, ‘rb’) as f:
    pickle.load(f)
    pickle.load(f)
    C_object=pickle.load(f)
但是,在我的实际代码中,它可以工作,因为我需要很多对象,传递所有预览对象的过程需要很多时间。我可以直接加载C_对象吗

我搜索的内容如下:

with open(filename, ‘rb’) as f:
    C_object=pickle.load(f, 2)
避免我加载前面的每个对象,使我的代码更加高效


提前感谢

虽然这不受
pickle
的支持,但这是
搁置
模块的目的

它允许您将一个pickle对象文件作为字典进行操作:您可以通过将对象与键关联来存储它们,并通过这些键获取它们

下面是一个虚拟示例:

import shelve


class Foo:
    pass


with shelve.open("test.shelf") as shelf:
    shelf['a'] = Foo()
    shelf['b'] = Foo()
    shelf['c'] = Foo()


with shelve.open("test.shelf") as shelf:
    foo_c = shelf['c']

您可以查看以了解更多功能。

虽然这不是
pickle
支持的功能,但这是
搁置
模块的目的

它允许您将一个pickle对象文件作为字典进行操作:您可以通过将对象与键关联来存储它们,并通过这些键获取它们

下面是一个虚拟示例:

import shelve


class Foo:
    pass


with shelve.open("test.shelf") as shelf:
    shelf['a'] = Foo()
    shelf['b'] = Foo()
    shelf['c'] = Foo()


with shelve.open("test.shelf") as shelf:
    foo_c = shelf['c']

您可以查看以了解更多功能。

如果您特别需要此对象,为什么不将其pickle到单独的文件中并加载?或者更改pickle顺序,使您最想要的对象位于顶部?如果您特别需要此对象,为什么不将其pickle到单独的文件中并加载?或者更改pickle顺序,使您最想要的对象经常位于顶部?您想要架子