倾倒泡菜不适用于 rb+

Dumping pickle is not working with rb+

为什么pickle文件没有修改?但是在我取消注释行之后它起作用了吗?

with open(PATH, "rb+") as fp:
    mocks_pickle = pickle.load(fp)
    mocks_pickle['aa'] = '123'
    # pickle.dump(mocks_pickle, open(PATH, 'wb'))
    pickle.dump(mocks_pickle, fp)

在转储对象之前,您需要使用 fp.seek(0) 查找文件的开头。

如果您不寻求,请将新的 pickle 附加到文件末尾。 当你从文件中 pickle.load 时,你只会得到文件中的第一个。

with open(PATH, "rb+") as fp:
    mocks_pickle = pickle.load(fp)
    mocks_pickle['aa'] = '123'
    fp.seek(0)
    pickle.dump(mocks_pickle, fp)