Python Pickle示例
在本教程中,我们将讨论Python Pickle Example。
在上一教程中,我们讨论了Python多重处理。
Python Pickle
Python Pickle用于对Python对象结构进行"序列化"和"反序列化"。
可以对python上的任何对象进行腌制,以便将其保存在磁盘上。
首先,Python pickle序列化对象,然后将对象转换为字符流,以便此字符流包含在另一个python脚本中重构对象所需的所有信息。
请注意,根据文档说明,泡菜模块无法防止错误或者恶意构建的数据。
因此,切勿挑剔从不可信或者未经身份验证的来源收到的数据。
Python Pickle转储
在本节中,我们将学习如何使用Python pickle存储数据。
为此,我们必须首先导入pickle模块。
然后使用pickle.dump()
函数将对象数据存储到文件中。pickle.dump()
函数接受3个参数。
第一个参数是您要存储的对象。
第二个参数是通过以" write-binary"(wb)模式打开所需文件而获得的文件对象。
第三个参数是键值参数。
此参数定义协议。
协议有两种类型-pickle.HIGHEST_PROTOCOL和pickle.DEFAULT_PROTOCOL。
请参阅示例代码以了解如何使用pickle转储数据。
import pickle # take user input to take the amount of data number_of_data = int(input('Enter the number of data : ')) data = [] # take input of the data for i in range(number_of_data): raw = input('Enter data '+str(i)+' : ') data.append(raw) # open a file, where you ant to store the data file = open('important', 'wb') # dump information to that file pickle.dump(data, file) # close the file file.close()
以下程序将提示您输入一些输入。
就我而言,就是这样。
Python Pickle加载
要检索腌制的数据,步骤非常简单。
你必须使用pickle.load()
函数来做到这一点。
pickle加载函数的主要参数是您通过以二进制读取(rb)模式打开文件而获得的文件对象。
简单!是不是让我们编写代码以检索使用pickle dump代码腌制的数据。
请参阅以下代码以进行理解。
import pickle # open a file, where you stored the pickled data file = open('important', 'rb') # dump information to that file data = pickle.load(file) # close the file file.close() print('Showing the pickled data:') cnt = 0 for item in data: print('The data ', cnt, ' is : ', item) cnt += 1
输出将如下所示:
Showing the pickled data: The data 0 is : 123 The data 1 is : abc The data 2 is : !@#$
Python Pickle示例
我制作了一个简短的视频,展示了python pickle示例程序的执行-首先将数据存储到文件中,然后加载并打印它。
如您所见,由python pickle dump创建的文件是二进制文件,并在文本编辑器中显示垃圾字符。
关于Python Pickle的重要说明
关于python pickle模块的几个要点是:
泡菜协议仅适用于Python,因此不保证可以跨语言兼容。
这意味着您很可能无法传输信息以使其在其他编程语言中有用。也不能保证不同版本的Python之间的兼容性,因为不是每个Python数据结构都可以由模块序列化。
除非您手动更改,否则默认情况下会使用最新版本的pickle协议。
最后但并非最不重要的一点是,根据文档说明,泡菜模块无法防止错误或者恶意构建的数据。