【发布时间】:2011-09-27 22:07:24
【问题描述】:
我需要将十几个对象保存到一个文件中,然后再将它们恢复。 我尝试使用 for 循环与 pickle 和 shelve,但它不能正常工作。
编辑。
我试图保存的所有对象都在同一个类中(我之前应该提到这一点),我没有意识到我可以像这样保存整个类:
import pickle
def saveLoad(opt):
global calc
if opt == "save":
f = file(filename, 'wb')
pickle.dump(calc, f, 2)
f.close
print 'data saved'
elif opt == "load":
f = file(filename, 'rb')
calc = pickle.load(f)
else:
print 'Invalid saveLoad option'
【问题讨论】:
-
您说您尝试了 for 循环。请发布该代码,以及为什么“它不能正常工作”(即发生了什么以及您想要发生什么)。
-
如果您在 Windows 上,请确保以二进制模式打开文件
-
@gnibbler:只有非默认协议(docs.python.org/library/pickle.html#usage)才需要二进制模式。