Ron_Adam <[EMAIL PROTECTED]> writes:
Here's yet another way to do it, but it has some limitations as well.
import pickle
def pickle_it(filename, obj, commands):
try:
f = open(filename, 'r') obj = pickle.load(f)
f.close()
except IOError:
pass
for i in commands:
i[0](i[1])
f = open(filename, 'w')
pickle.dump(obj, f)
f.close()
file = 'filename' L = []
opps = [ (L.append,'more data'), (L.append,'even more data') ] pickle_it(file, L, opps)
Um - it doesn't look like this will work. You pass L in as the "obj" paremeter, and then it gets changed to the results of a pickle.load. However, you call L.append in the for loop, so the data will be appended to L, not obj. You'll lose an list elements that were in the pickle.
<mike
Hmmm, you are correct. :-/
I was trying to not use eval(). This could be made to work, but it will get messy, which is another reason not to do it.
Cheers, Ron -- http://mail.python.org/mailman/listinfo/python-list