Python地址簿
1 #!/usr/bin/python 2 #coding=UTF-8 3 # FileName:address.py 4 # Python地址簿 5 import cPickle as p; 6 import os; 7 import sys; 8 class Address: 9 '''Python地址簿''' 10 # 构造函数 11 def __init__(self): 12 self.dataFileName = 'address.data'; 13 self.dataPath = os.getcwd() + os.sep; 14 handle = file(self.dataPath + self.dataFileName, 'w'); 15 try: 16 self.peopleList = p.load(handle); 17 except: 18 print '%s is empty.initializing...'%(self.dataFileName); 19 self.peopleList = {}; 20 handle.close(); 21 ### 22 # 添加一个地址簿 23 # @access public 24 # @author zhaoyingnan 2016-03-01 10:10:46 25 # @param string username 人名 26 # @param string marks 备注 27 # @param string mobile 手机号码 28 # @param string email 邮箱 29 # @return mix 30 # @note 31 ### 32 def addPeople(self, username, marks, mobile, email): 33 '''添加一个地址簿''' 34 if self.peopleList.get(username, 404) == 404: 35 newPeople = {'username':username, 'marks':marks, 'mobile':mobile, 'email':email}; 36 self.peopleList[username] = newPeople; 37 else: 38 'already exist.'; 39 40 ### 41 # 删除一个地址簿 42 # @access public 43 # @author zhaoyingnan 2016-03-01 10:16 44 # @param string username 人名 45 # @return mix 46 # @note 47 ### 48 def delPeople(self, username): 49 if self.peopleList.get(username, 404) == 404: 50 print '%s non-existent.'%(username); 51 else: 52 del self.peopleList[username]; 53 print 'ok.'; 54 55 ### 56 # 修改一个地址簿 57 # @access public 58 # @author zhaoyingnan 2016-03-01 10:18 59 # @param string username 人名 60 # @param string index 索引(username/marks/mobile/email) 61 # @param string value 索引对应的值 62 # @return mix 63 # @note 64 ### 65 def updatePeople(self, username, index, value): 66 if self.peopleList.get(username, 404) == 404: 67 print '%s non-existent.'%(username); 68 #sys.exit('%s non-existent!'%(username)); 69 else: 70 self.peopleList[username][index] = value; 71 72 ### 73 # 获取列表 74 # @access public 75 # @author zhaoyingnan 2016-03-01 10:21 76 # @return string 77 # @note 78 ### 79 def getPeople(self): 80 if len(self.peopleList) > 0: 81 for username,arList in self.peopleList.items(): 82 print '-------------------------------'; 83 print '\t%s\t'%(username); 84 for key,value in arList.items(): 85 print '%s\t%s'%(key, value); 86 print '-------------------------------'; 87 else: 88 print '%s is empty.'%(self.dataFileName); 89 90 # 将地址播存储在文件中 91 def __del__(self): 92 handle = file(self.dataPath + self.dataFileName, 'w'); 93 p.dump(self.peopleList, handle); 94 handle.close(); 95 96 97 address = Address(); 98 address.addPeople('lee', 'LiHongBin', 18911937250, '791520450@qq.com'); 99 address.addPeople('zhaoyn', 'ZhaoYingNan', 15932279586, '409586363@qq.com'); 100 address.addPeople('Mr.Zhu', 'ZhuXiaoHuan', 13303028786, '12802390939@qq.com'); 101 address.delPeople('Mr.Zhu'); 102 address.updatePeople('Liu', 'marks', 'LiuQing'); 103 address.updatePeople('zhaoyn', 'marks', 'Mr.Zhao'); 104 address.getPeople();