python 教程 第十四章、 地址薄作业

第十四章、 地址薄作业

#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', 'joan@123.com')
    i.append('adny', 'adny@123.com')
    i.append('xixi', 'xixi@123.com')
    i.find('joan')
    i.find('joab')
    print "Original List:"
    i.show()
    print "after modify adny"
    i.modify('adny', 'adnX@123.com')
    i.show()
    print "after del joan"
    i.delete('joan')
    i.show()
    i.save() 
except TypeError:
    print "TypeError"
except:
print "Other Error occured" 

  

posted @ 2011-10-13 12:11  方倍工作室  阅读(358)  评论(0编辑  收藏  举报