Python: 在python脚本中保存pickle对象
Python: Save pickled object in the python script
我有一个 class 实例,我使用 pickle.dump(instance,outputfile)
将其转储到 .pickle 文件中。我可以分发脚本和 pickle 文件,并要求用户使用 pickle 文件作为参数 运行 python 脚本,然后我可以使用 pickle.load(pickle_file_passed_as_argument)
[=17= 加载该实例]
我可以代替 "embed" 脚本本身中的 pickle 文件,然后只传递脚本吗?然后,当用户 运行 脚本时,我可以加载 "embedded" 对象的实例并使用该对象的所有成员函数吗?
我的问题类似于:
This question
我不理解那里给出的任何答案,因为它们是对要做什么的抽象描述,没有代码示例。我不确定如何使用三引号技巧来嵌入对象(尽管该问题中的所有答案都提到了这一点)。我以前没有使用过这样的三引号字符串..
其中一个答案提到使用 s=pickle.dumps(objectInstance)
后跟 pickle.loads(s)
并将其与三引号组合以嵌入对象。我如何 "combine" 转储,加载三引号技巧,我不明白那部分..
这个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}
我有一个 class 实例,我使用 pickle.dump(instance,outputfile)
将其转储到 .pickle 文件中。我可以分发脚本和 pickle 文件,并要求用户使用 pickle 文件作为参数 运行 python 脚本,然后我可以使用 pickle.load(pickle_file_passed_as_argument)
[=17= 加载该实例]
我可以代替 "embed" 脚本本身中的 pickle 文件,然后只传递脚本吗?然后,当用户 运行 脚本时,我可以加载 "embedded" 对象的实例并使用该对象的所有成员函数吗?
我的问题类似于:
This question
我不理解那里给出的任何答案,因为它们是对要做什么的抽象描述,没有代码示例。我不确定如何使用三引号技巧来嵌入对象(尽管该问题中的所有答案都提到了这一点)。我以前没有使用过这样的三引号字符串..
其中一个答案提到使用 s=pickle.dumps(objectInstance)
后跟 pickle.loads(s)
并将其与三引号组合以嵌入对象。我如何 "combine" 转储,加载三引号技巧,我不明白那部分..
这个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}