使用dill加载pkl文件

6

我有一个非常复杂的字典和转储文件,使用dill直接进行转储和加载可以正常工作。这是参考此答案。但是有一个小修改,我需要将其保存在某个文件中,并在以后使用时读取该文件。

以下是我的代码片段:

NWORDSa是我保存到'abc.pkl'文件中的字典。

pdict1 = dill.dumps(NWORDSa)
dill.dump_session('abc.pkl')

我不知道如何读取以获取原始的NWORDSa。我尝试过:

c = dill.load_session('abc.pkl')
NWORDS_b= dill.loads(c)  

并且(希望将其保存在变量bbn中)

with open('abc.pkl', 'rb') as f:
     pickle.dump(bbn, f)  

但是两种方法都不起作用,有更好的方法吗?


使用.pt作为pickle文件的扩展名(或者至少这是PyCharm突出显示的,这让我假设这是常见的扩展名)。 - Charlie Parker
1个回答

10
你正在删除会话,而不是字典本身。我不知道保存/加载会话是否需要 - 这取决于你的设置。
尝试:
with open(outfile, 'wb') as out_strm: 
    dill.dump(datastruct, out_strm)

并且:

with open(infile, 'rb') as in_strm:
    datastruct = dill.load(in_strm)

如果你需要转储会话,请在之前使用 dill.dump_session('session.pkl'),之后使用 dill.load_session('session.pkl')。这些操作可以帮助你在IT技术中更好地管理会话。请注意不要改变html标签格式。

请使用".pt"作为pickle文件的扩展名(至少这是PyCharm突出显示的,这让我认为这是常见的扩展名)。 - Charlie Parker

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接