Kent and all, Here is the latest code: import pickle rates = {'can_us' : 0.80276, 'us_can' : 1.245702, 'can_euro' : 1.488707, 'euro_can' : 0.671724}
def save_rates(exch): store = open("exch.txt",'w') pickle.dump(conv,rate) store.close() def load_rates(exch): store = open('exch.txt','r') exch = pickle.load(store) store.close() And here is the latest error: The Currency Exchange Program By Nathan Pinno Traceback (most recent call last): File "D:\Python24\exchange.py", line 36, in -toplevel- load_rates(rates) File "D:\Python24\exchange.py", line 13, in load_rates exch = pickle.load(store) File "D:\Python24\lib\pickle.py", line 1390, in load return Unpickler(file).load() File "D:\Python24\lib\pickle.py", line 872, in load dispatch[key](self) File "D:\Python24\lib\pickle.py", line 1207, in load_appends mark = self.marker() File "D:\Python24\lib\pickle.py", line 888, in marker while stack[k] is not mark: k = k-1 IndexError: list index out of range How do I fix this error? Thanks for all the help so far, Nathan Pinno, MSN Messenger: [EMAIL PROTECTED] Yahoo! Messenger: spam_swatter31 AIM: f3mighty ICQ: 199020705 StopIteration is an iterator's way of saying it has reached the end. When you iterate using a for loop, the exception is caught internally and used to terminate the loop. When you call next() explicitly, you should be prepared to catch the exception yourself. In this case though, the exception means you have a conv without a rate, so it is a symptom of bad data or an error reading the data. Have you looked at the file to make sure it is correct? If it is, you might try a slightly different loop. I'm not sure if it really works to mix a for loop iteration with calls to next() on the iterator. Try something like this: store = open(filename,'r') try: while True: conv = store.next().strip() rate = float(store.next().strip()) exch[conv] = rate except StopIteration: pass Or use the pickle module to save and load your exch dictionary, it is perfect for this and as simple as import pickle # save store = open(filename, 'wb') pickle.dump(exch, store) store.close() # load store = open(filename, 'b') exch = pickle.load(store) store.close() Kent _______________________________________________ Tutor maillist - Tutor@python.org http://mail.python.org/mailman/listinfo/tutor