Python联系人(添、删、查、改)

#!/usr/bin/python
#gavinlu1015@gmail.com
#linux OS

import pickle
import os

file='contact.data'
contact={}

class ContactInfo:
    def __init__(self, name, relationship, phonenum):
        self.name = name
        self.relationship = relationship
        self.phonenum = phonenum

        print('name: {0} - relationship: {1} - phonenum {2}'
                .format(self.name, self.relationship, 
                    self.phonenum))


class ContactOper:
    def PersonAdd(self, ContactInfo):
        f = open(file, 'rb')
        contact = pickle.load(f)
        contact[ContactInfo.name] = ContactInfo
        f.close()

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

        print('Add: {0}' .format(ContactInfo.name))

    def PersonDel(self, name):
        f = open(file, 'rb')
        contact = pickle.load(f)
        del contact[name]
        f.close()

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

        print('del: {0}' .format(name))

    def PersonShow(self):
        f = open(file, 'rb')
        contact = pickle.load(f)
        f.close()

        for name, contactinfo in contact.items():
            print('name:{0} contact:{1} phonenum:{2}'
                .format(name, contactinfo.relationship,
                    contactinfo.phonenum))

    def PersonRepair(self, rname, relationship, phonenum):
        f = open(file, 'rb')
        contact = pickle.load(f)
        f.close()

        for name, contactinfo in contact.items():
            if(name == rname and (relationship or phonenum)):
                contact[rname].relationship = relationship
                contact[rname].phonenum = phonenum

        f = open(file, 'wb')
        pickle.dump(contact, f) 
        f.close()

while(True):
    t = raw_input('A:add D:del S:show R:repair Q:quit\n')

    if not os.path.exists(file):  
        f = open(file, 'w')
        f.write("(dp0\n.")
        f.close()

    if(t == 'A'):
        print('Please input contact info')
        n = raw_input('name:')
        c = raw_input('contact:')
        p = raw_input('phonenum:')
        t = ContactInfo(n, c, p)
        h = ContactOper()
        h.PersonAdd(t)

    elif(t == 'D'):
        print('Please input contact name\n')
        n = raw_input('name:')
        h = ContactOper()
        h.PersonDel(n)

    elif(t == 'S'):
        h = ContactOper()
        h.PersonShow()

    elif(t == 'R'):
        n = raw_input('Please input repair contact name:')
        c = raw_input('contact:')
        p = raw_input('phonenum:')
        h = ContactOper()
        h.PersonRepair(n, c, p)

    elif(t == 'Q'):
        print('exiting now ...')
        exit()
    else:
        print('input error!')
        continue
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值