[英]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.