我认为pickle是一个对象持久性库,它允许我将数据结构写入磁盘并重新加载。
为什么/何时使用文本文件的“传统”方法?
编辑:实际上,这不是一个有用的方式来表达问题。我的意思是什么是泡菜更容易/更方便的情况,什么时候会让我遇到麻烦?什么样的数据或设计模式有助于腌制?
答案 0 :(得分:5)
当您想要存储非文本的Python对象时,不容易使用其他库(JSON,msgpack等)进行序列化,并且不想编写自己的序列化和反序列化代码。
一般来说,pickle应该是最后的序列化和反序列化方法:它不是很快(msgpack 远更快更紧凑),不安全(不要使用pickle作为cookie或其他客户端可访问数据的存储格式!),不可互操作(不存在非Python语言的实现)......但它适用于其他地方通常不支持的对象和数据类型(尽管不是所有 Python对象)。
答案 1 :(得分:1)
使用pickle或类似方法,您可以获得可用于重构这些对象的对象的文本表示。如果没有像pickle这样的东西,你就不能编写自己的持久性代码。