Ramit, This seems to be more logic now "I hope" :) ######################################### import ast fname = 0 lname = 1 country = 2 city = 3 tel = 4 notes = 5
## Read data from file def load_book(): load_book = open('c:/Python27/Toli/myfile.txt', 'r') load_book = ast.literal_eval(load_book.read()) return load_book ## Write data to file def write_book(tbook): write_book = open('c:/Python27/Toli/myfile.txt', 'w') write_book.write(repr(tbook)) ## Menu choice input def get_menu_choice(text): choice = raw_input(text) return choice ## List data contacts def listpb(): ##tbook = load_book() print '_' *45, ' Phonebook ', '_' *45,'\n\n\n' print 'Nick\t\tF.Name\t\tL.Name\t\tCountry\t\t\tCity\t\tTel' print '_' * 105,'\n','\t' * 13 for val in tbook.keys(): print val, '\t\t', tbook[val][fname], '\t', tbook[val][lname], '\t', tbook[val][country], '\t\t', tbook[val][city], '\t\t', tbook[val][tel],'\t\t\n' print '_'*105,'\n\n\n\n' print 'Type nickname and press <Enter> or type <Q> to exit.\n\n\n' ## Main menu def mmenu(tbook): listpb() while True: text = 'Type your option: ' choice = get_menu_choice(text) if choice == 'e' or choice == 'E': text = 'Type nickname and press <Enter> to edit: ' choicen = get_menu_choice(text) if choicen in tbook: edit(choicen, tbook) elif choice == 'b' or choice == 'B': listpb() elif choice == 'd' or choice == 'D': text = 'Type nickname and press <Enter> for details: ' choicen = get_menu_choice(text) if choicen in tbook: details(choicen, tbook) elif choice == 'q' or choice == 'Q': break else: print 'Selection {0} not understood.'.format(choice) ## Contact details def details(choicen, tbook): sb = tbook[choicen] print 'Nickname: ', choicen, ' is selected\n' print 'First name:\t', sb[fname], '\n' print 'Last name:\t', sb[lname], '\n' print 'Country:\t', sb[country], '\n' print 'City:\t\t', sb[city], '\n' print 'Phone number:\t',sb[tel], '\n' print 'Memos:\n' print sb[notes] print '\n\n(E)dit\n\n' print '(B)ack to phonebook list\n\n' ## Edit contact def edit(choicen, tbook): sb = tbook[choicen] fn = raw_input('New name for ' + sb[fname] + ' : ') if fn == '': pass else: sb[fname] = fn ln = raw_input('New name for ' + sb[lname] + ' : ') if ln == '': pass else: sb[lname] = ln write_book(tbook) details(choicen, tbook) tbook = load_book() mmenu(tbook) ####################################### What you thing? Regards Anatoli
-- http://mail.python.org/mailman/listinfo/python-list