我在用Python从字典中恢复姿势时遇到了一些问题。我刚刚创建了一个字典,其中包含了来自对象的数据,并将该字典保存在一个泡菜文件中。
现在,我想从这个泡菜文件中获取所有数据,并将其还原到另一个对象。你能告诉我什么是最好的方法吗?
这是我的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我刚刚将字典保存在一个泡菜文件中,所以当打印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}}}现在,我希望将这些数据从这个文件恢复到一个对象。
发布于 2013-07-02 21:37:21
我在用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发布于 2013-07-02 21:34:09
pickle.load
从打开的文件对象文件中读取一个字符串,并将其解释为一个泡菜数据流,重构并返回原始对象层次结构。
在您的函数中,您可以保存和还原对象。您应该拆分这些操作(并使用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()https://stackoverflow.com/questions/17436169
复制相似问题