Eri Mendz wrote:
Kent Johnson <kent37 <at> tds.net> writes:
Jacob S. wrote:
sorry to send this to you but if you may, kindly send to tutor list as im no longer subscribed. my problem is in the update dict portion: it just doesnt update regardless how many contacts i add. kindly advise where my mistake is or code gone wrong. the rest of the options i will do on my own so just hold off the helps for now. appreciate all your good help.
def update_dict(d, f): ''' update the saved dictionary file '''
read = open(f, 'rb') newdic = cPickle.load(read) newdic.update(d) read.close()
You don't do anything with newdic. My guess is you want to dump it back to the
file so it is saved.
this is what i tried: read = open(f, 'rb') newdic = cPickle.load(read) newdic.update(d) read.close()
write = open(f, 'wb') cPickle.dump(f, write)
You still aren't doing anything with newdic. The absence of 'newdic' in the code after 'read.close()' should be a clue :-)
Check the docs on pickle.dump() (which is the same as cPickle.dump()):
dump( obj, file[, protocol[, bin]])
Write a pickled representation of obj to the open file object file. This is equivalent to Pickler(file, protocol, bin).dump(obj).
So to pickle newdic you should say cPickle.dump(newdic, write)
write.close()
but it 'overwrites' the saved dic. can you rw in one go, dump and load the updated dict instantly??
I think you want to overwrite the saved dict, but with the new dict instead of with a filename string...
Kent
sending this in gmane mail2news gateway.
Thank you
_______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor