用Python做命令行地址簿
2018-01-19 11:13
78 查看
用Python做命令行地址簿
阅读《简明Python教程》有一段时间了,书里提出一个小练习,实现了下。问题:命令行地址簿程序,可以用来浏览、添加、编辑、删除联系人,需要有邮件地址、电话号码等多种信息。
程序设计
1、数据存储位置,程序主目录下address.data文件
存储方式:编号,,,姓名,,,年龄,,,地址,,,电话
2、功能: 浏览:查看所有信息
添加:添加一条信息
编辑:编辑指定的信息
删除:删除指定信息
3、实现代码
dao.py
# coding=UTF-8 #数据层 #数据库文件 datafile='address.data' #连接符 contact=',,,' __version__='1.0' class AddressDao: '''地址簿数据层''' def __init__(self): self.addressMap={} self.number = '0' def readaddressMap(self): '''读取地址簿所有内容''' with open(datafile) as f: for line in f: address = line.split(contact) self.addressMap[address[0]]=address self.number=address[0] def saveAddress(self,name,age,mail,phone): '''保存一条记录''' newSeq = str(int(self.number)+1) addressNew = [newSeq,name,age,mail,phone] self.addressMap[newSeq]=addressNew self.saveAddressToFile() def saveAddressToFile(self): '''持久化到文件''' with open(datafile,'w') as f: keys = list(self.addressMap.keys()) keys.sort(key=lambda i:i) for key in keys: f.writelines(contact.join(self.addressMap[key])) def updateAddress(self,code,name,age,mail,phone): '''修改一条记录''' addressNew = [code,name,age,mail,phone] self.addressMap[code]=addressNew self.saveAddressToFile() def delAddress(self,code): '''删除一条记录''' del(self.addressMap[code]) self.saveAddressToFile()
service.py
# coding=UTF-8 import dao __version__='1.0' menumain = ''' ******我的地址簿****** 1-浏览 2-新建 3-编辑 4-删除 ---------------------- ''' title=['序号','姓名','年龄','邮箱','电话'] class AddressService: '''地址簿服务层''' def __init__(self): '''程序加载时读取数据库现有的地址簿''' self.add = dao.AddressDao() self.add.readaddressMap() def showMainMenu(self): '''展示主菜单''' print(menumain) def inputCode(self): '''接收用户输入指令''' try: code = input('请选择需要进行的操作:') except EOFError: print('谢谢使用,再见') except KeyboardInterrupt: print('谢谢使用,再见') else: if code=='1': self.readAddress() elif code=='2': self.newAddress() elif code=='3': self.editAddress() elif code=='4': self.delAddress() self.inputCode() def readAddress(self): '''浏览功能''' print('\n浏览\n') print('\t\t'.join(title)) keys = list(self.add.addressMap.keys()) keys.sort(key=lambda i:i) for key in keys: print('\t\t'.join(self.add.addressMap[key]).replace('\n','')) self.showMainMenu() def newAddress(self): '''新建功能''' print('\n新建\n') name = "" while name=="": name=input('请输入*姓名:') age = "" while age=="": age=input('请输入年龄:') mail = "" while mail=="": mail=input('请输入邮箱:') phone = "" while phone=="": phone=input('请输入电话') self.add.saveAddress(name,age,mail,phone) print('保存成功') self.showMainMenu() def editAddress(self): '''编辑功能''' print('\n编辑\n') willEdit = input('请输入想要编辑的序号:') if willEdit in self.add.addressMap: name = "" while name=="": name=input('请输入*姓名:') age = "" while age=="": age=input('请输入年龄:') mail = "" while mail=="": mail=input('请输入邮箱:') phone = "" while phone=="": phone=input('请输入电话:') self.add.updateAddress(willEdit,name,age,mail,phone) print('修改成功') else: print('找不到要修改的序号') self.showMainMenu() def delAddress(self): '''删除功能''' print('\n删除\n') willDel = input('请输入想要删除的序号:') if willDel in self.add.addressMap: self.add.delAddress(willDel) print('删除成功') else: print('找不到想要删除的序号') self.showMainMenu()
main.py
# coding=UTF-8 #程序入口 import service ads=service.AddressService() ads.showMainMenu() ads.inputCode()
运行:–>python main.py
相关文章推荐
- python创建命令行地址簿程序
- python创建你自己的命令行,地址簿程序
- [python]小练习__创建你自己的命令行 地址簿 程序
- python简明教程练习--命令行 地址簿 程序
- python中os指定命令行的文件地址
- Python命令行地址簿小程序代码
- Python中input和raw_input在命令行中读入文件地址的区别
- 用python创建你自己的命令行地址簿程序
- python命令行地址簿程序
- python简明教程练习--命令行 地址簿 程序
- python创建命令行地址簿程序
- 一个有gentoo有python文章的BLOG地址
- 利用Python命令行传递实例化对象的方法
- 退出Python命令行
- Python命令行选项参数解析策略
- [python]初学者地址
- python:用正则表达式进行电子邮箱地址匹配
- 一个很好的python学习地址
- python获取本机mac地址和ip地址的方法
- 【转载】PDB命令行调试Python代码