[英]from a pickle file, restoring data in python
我在使用Python从字典中还原姿势时遇到一些问题。 我刚刚创建了一个包含对象数据的字典,并将该字典保存在一个pickle文件中。
现在,我想从该pickle文件中获取所有数据,并将其还原到另一个对象。 你能告诉我最好的方法是什么?
这是我的save_pose函数:
def save_pose () :
output = open('pose_dictionary.pkl', 'wb')
pickle.dump(grab_pose(cmds.ls(selection=1), True), output)
output.close()
dict_file = open('pose_dictionary.pkl', 'rb')
dict_pkld = pickle.load(dict_file)
dict_file.close()
print dict_pkld
我只是将字典保存在一个pickle文件中,所以当打印dict_pkld时,它返回
{u'left_pCube1_control': {u'translateX': {'value': 0.0, 'key': False}, u'translateY': {'value': 0.0, 'key': False}, u'translateZ': {'value': 0.0, 'key': False}, u'scaleX': {'value': 4.1730065104412066, 'key': {'outTangent': u'auto', 'inTangent': u'auto', 'inAngle': 0.0, 'outAngle': 0.0}}, u'scaleY': {'value': 4.1730065104412066, 'key': {'outTangent': u'auto', 'inTangent': u'auto', 'inAngle': 0.0, 'outAngle': 0.0}}, u'visibility': {'value': True, 'key': False}, u'rotateX': {'value': 0.0, 'key': False}, u'rotateY': {'value': 0.0, 'key': False}, u'rotateZ': {'value': 0.0, 'key': False}, u'scaleZ': {'value': 4.1730065104412066, 'key': {'outTangent': u'auto', 'inTangent': u'auto', 'inAngle': 0.0, 'outAngle': 0.0}}}
我现在想将这些数据从该文件还原到一个对象。
我在从Python的字典中还原姿势时遇到一些问题
到底是什么问题...如果我不得不猜测,我想说的是您的grab_pose
函数有问题。
当我运行以下脚本时,我没有任何错误。
import pickle
output = open('pose_dictionary.pkl', 'wb')
pickle.dump({"test":1}, output)
output.close()
dict_file = open('pose_dictionary.pkl', 'rb')
dict_pkld = pickle.load(dict_file)
dict_file.close()
print dict_pkld
从打开的文件目标文件中读取一个字符串,并将其解释为泡菜数据流,从而重建并返回原始对象层次结构。
在您的函数中,您都保存和还原了对象。 你应该拆分这些操作(和使用with
):
filename = 'pose_dictionary.pkl'
def save_pose(data):
with open(filename , 'wb') as output:
pickle.dump(data, output)
def restore_pose():
with open(filename , 'rb') as dict_file:
return pickle.load(dict_file)
data = grab_pose(cmds.ls(selection=1), True) #assumption, based on your code
save_pose(data)
#...
data = restore_pose()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.