什么是"file_like_object",什么是"file"; pickle.load() 和 pickle.loads()

what is "file_like_object", what is "file"; pickle.load() and pickle.loads()

我正在找出 pickle.load()pickle.loads() 之间的区别。有人说pickle.load()进程是什么对象"file_like_object",但是pickle.loads()对应的是"file object"。

您选择使用哪个函数取决于您从中加载腌制数据的对象:


pickle.loads 用于从 bytes 字符串加载腌制数据。 loads中的"s"指的是在Python2中,数据是从string.

加载的

例如:

import pickle

with open("myobj.pickle", "rb") as f:
    rawdata = f.read()

myobj = pickle.loads(rawdata)

pickle.load 用于从 类文件对象 加载腌制数据。这是任何像文件一样工作的对象 - 在这种情况下,意味着它有一个 read() 方法 returns bytes.

例如:

import pickle

with open("myobj.pickle", "rb") as f:
    myobj = pickle.load(f)

同样的约定适用于 pickle 库中的 dump/dumps 函数,以及 json 模块和其他函数。