我有一个类实例,我使用pickle.dump(instance,outputfile)
转储到.pickle文件中。我可以分发脚本和pickle文件并要求用户以pickle文件作为参数运行python脚本,然后我可以使用pickle.load(pickle_file_passed_as_argument)
我可以代替"嵌入"脚本本身里面的pickle文件,然后只是传递脚本?然后,当用户运行脚本时,我可以加载" embedded"对象并使用所有对象的成员函数?
我的问题类似于:
我没有理解那里给出的任何答案,因为他们在没有代码示例的情况下抽象地描述了该怎么做。我不确定如何使用三引号技巧嵌入对象(尽管该问题中的所有答案都提到了这一点)。我之前没有使用过类似三重引号的字符串..
其中一个答案提到使用s=pickle.dumps(objectInstance)
后跟pickle.loads(s)
并将其与三引号结合以嵌入对象。我到底如何结合"转储,加载三重引号技巧,我没有得到那个部分..
答案 0 :(得分:2)
这answer的含义是对要包含在pickle
和encode
中的数据进行编码:
import pickle
data = dict(a=1,b=2)
pickle.dumps(data).encode('base64')
> 'KGRwMApTJ2EnCnAxCkkxCnNTJ2InCnAyCkkyCnMu\n'
并在您的文件中对其进行解码,以便从源代码中写入的字符串中共享:
import pickle
# data encoded as a string
encoded_data = """KGRwMApTJ2EnCnAxCkkxCnNTJ2InCnAyCkkyCnMu\n"""
# decoding of the data
data = pickle.loads(encoded_data.decode('base64'))
print data
> {'a': 1, 'b': 2}