Nathan Pinno wrote:

I already told you that the data is being saved to the file. And is 
being reloaded by ac = pickle.load(store). But the reloaded data is not 
being assigned to accountlist, since parameters to functions are treated 
as local variables. Assigning to a parameter in a function does NOT 
change the value of the parameter in the call.

You can demonstrate this as follows:
 >>> x = 2
 >>> def f(y):
...    y = 3
 >>> print x
2

To fix your program, define load_file as:

def load_file():
    import os
    import pickle
    filename = 'accounts.txt'
    if os.path.exists(filename):
        store = open(filename, 'r')
        ac = pickle.load(store)
        store.close()
    else:
        ac = {}
    return ac

And change load_file(accountlist) to:

accountlist = load_file()


[snip]

-- 

Bob Gailer
510-978-4454

_______________________________________________
Tutor maillist  -  [email protected]
http://mail.python.org/mailman/listinfo/tutor

Reply via email to