第十四章、 地址薄作业
#A Byte of Python #!/usr/bin/env python import cPickle import os #define the contacts file, list global file_contacts global list_contacts file_contacts = 'AddressBook.txt' list_contacts = [] #delete the file try: file_path = os.getcwd() + os.sep + file_contacts if os.path.isfile(file_path): os.remove(file_contacts) f = file(file_contacts,'w') f.close() #define the class of contacts and implement the methods class class_contacts: def __init__(self, list_contacts): self.contacts = list_contacts def append(self, name, mail): dict_contacts = {'Name': name, 'Mail': mail} self.contacts.append(dict_contacts) def find(self, name): found = False for instance_contacts in list_contacts: if name == instance_contacts['Name']: found = True print " Found:", name, ", PASS" break if not found: print " Found:", name, ", FAIL" def modify(self, name, mail): for instance_contacts in list_contacts: if name == instance_contacts['Name']: instance_contacts['Mail'] = mail break def delete(self, name): index = -1 for instance_contacts in list_contacts: index += 1 if name == instance_contacts['Name']: del list_contacts[index] def show(self): for list in list_contacts: print list def save(self): fa = file(file_contacts, "a") cPickle.dump(self.contacts, fa) fa.close() i = class_contacts(list_contacts) i.append('joan', '[email protected]') i.append('adny', '[email protected]') i.append('xixi', '[email protected]') i.find('joan') i.find('joab') print "Original List:" i.show() print "after modify adny" i.modify('adny', '[email protected]') i.show() print "after del joan" i.delete('joan') i.show() i.save() except TypeError: print "TypeError" except: print "Other Error occured"