原文: https://pythonbasics.org/pickle/

Pickle 可用于序列化和反序列化对象。 可以将已序列化的对象保存并从磁盘加载。 Pickle 是一种将对象(列表,字典等)转换为文件,反之亦然的方法。

这个想法是在一个脚本中保存一个或多个对象,然后在另一个脚本中加载它们。 您也可以使用它来保存程序或游戏状态。

我们将使用二进制文件进行保存和加载,因为这样可以节省磁盘空间。

序列化对象

要使用 Pickle,请导入pickle模块。创建一个对象并将其序列化。 然后使用文件对象将其写入文件。

  1. import pickle
  2. exampleObj = {'Python':3,'KDE':5,'Windows':10}
  3. fileObj = open('data.obj', 'wb')
  4. pickle.dump(exampleObj,fileObj)
  5. fileObj.close()

反序列化对象

现在,该对象已保存到文件中,您可以加载它(解开它)。 在下面的示例中,我们从文件中加载对象。

加载pickle模块,打开然后读取文件,然后使用pickle.load()加载数据。 您可以将其加载到所需的任何变量中,但是为了方便起见,我使用了相同的名称(exampleObj)。

  1. import pickle
  2. fileObj = open('data.obj', 'rb')
  3. exampleObj = pickle.load(fileObj)
  4. fileObj.close()
  5. print(exampleObj)

这将向您显示以前保存的对象:

Pickle - 图1

练习

请尝试以下练习:

  1. 从文件保存和加载对象
  2. 尝试从文件加载多个对象

下载示例