Home > Article > Backend Development > python phonebook management example
#!/usr/bin/env python #coding=utf-8 #电话本管理,可以进行添加,删除,修改,查询用户信息 import cPickle as p class Telephone: def __init__(self): '''构造方法 ''' def addPeople(self,name,email,telephone): """添加用户""" teleDict = self.getDictData() if teleDict: infoList = [name,email,telephone] teleDict[name] = infoList self.writefile(teleDict) else: teleDict = {} infoList = [name,email,telephone] teleDict[name] = infoList self.writefile(teleDict) def delPeople(self,name): """删除用户""" teleDict = self.getDictData() if name in teleDict.keys(): del teleDict[name] self.writefile(teleDict) else: print name,'is not in dict' def editPeople(self,name,emial,telephone): """ 修改信息""" teleDict = self.getDictData() if name in teleDict.keys(): infoList = [name,email,telephone] teleDict[name] = infoList self.writefile(teleDict) print name+'edit success' else: print name,'is not in dict' def getPeople(self,name): """获取用户信息""" teleDict = self.getDictData() if teleDict: if name in teleDict.keys(): people = teleDict[name] print people else: print name,'is not in dict' else: print 'people is empty' def writefile(self, dictData): """ 写入文件""" f = file('dict.data','w') p.dump(dictData,f) f.close() def getDictData(self): """ 获取文件内容""" fileName = 'dict.data' try: f = file(fileName) teleDict = p.load(f) return teleDict except: print 'open file error' # 提示 信息 def notice(): print "please enter 1-get people 2-add people 3-edit pelole 4-del people 5-get all people 0-break" if __name__ == "__main__": while(True): notice() userInput = int(raw_input()) people = Telephone() if userInput == 1: name = raw_input("please enter user name:") people.getPeople(name) elif userInput == 2: name = raw_input("enter name:") email = raw_input("enter emai:") telephone = raw_input("enter telephone:") people.addPeople(name,email,telephone) elif userInput == 3: name = raw_input("enter name:") email = raw_input("enter emai:") telephone = raw_input("enter telephone:") people.editPeople(name,email,telephone) elif userInput == 4: name = raw_input("enter del people name:") people.delPeople(name) elif userInput == 5: allpeople = people.getDictData() if allpeople: for key in allpeople: print key,allpeople[key] else: print 'there is no people' elif userInput == 0: break else: print 'you select number is wrong' raw_input('press enter')