python通讯录文件读取_Python实现命令行通讯录实例教程

1、实现目标

编写一个命令行通讯录程序,可以添加、查询、删除通讯录好友及电话

2、实现方法

创建一个类来表示一个人的信息。使用字典存储每个人的对象,名字作为键。

使用pickle模块永久地把这些对象存储下来。

使用字典内建的方法添加、删除修改人员信息。

3、思维导图

2016818101407559.png?2016718101430

4、编写伪代码

# 1.创建字典用来存储通讯录信息

# 2.创建人员类,包含姓名、关系、电话三个属性

# 3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法

# 4.程序运行

# 5.判断通讯录文件是否存在

# 6.如果存在,将文件读取到personDictionary字典中

# 7.如果不存在,提示并创建

# 8.while循环等待读取指令

# 9.如果指令为addperson,添加通讯录人员

# 10.如果指令为delperson,删除通讯录人员

# 11.如果指令为search,查找通讯录人员

# 12.如果指令为quit,不保存退出程序

# 13.如果指令为sq,保存更改并退出程序

5、根据伪代码编写代码

import pickle as p

import os

# 1.创建字典用来存储通讯录信息

personDictionary= {'name':{'relationship':'','tel':''}}

relationshipList=['家人','朋友','同事']

# 2.创建人员类,包含姓名、关系、电话三个属性

class Person:

def __init__(self,name,relationship= relationshipList[1],tel='None'):

personDictionary[name]= {'relationship':relationship,'tel':tel}

# 3.创建操作类,包含增加、查询、删除人员,退出,保存并退出五个方法

class Operation:

def Addperson():

addname= input('请输入姓名:')

addrelationship= int(input('请选择分组(0:家人,1:朋友,2:同事):'))

addtel= input('请输入电话:')

Person(addname,relationshipList[addrelationship],addtel)

def Delperson():

name= input('请输入要删除的联系人姓名:')

del personDictionary[name]

def Search():

name= input('请输入要查找的联系人的姓名:')

if name in personDictionary:

print('姓名:%s,关系:%s,电话:%s' %(name,personDictionary[name]['relationship'],personDictionary[name]['tel']))

else:

print('联系人不存在。')

def Quit():

running= False

def SaveQuit():

f= open(addressbookFile,'wb')

p.dump(personDictionary,f)

f.close()

running= False

# 4.程序运行

running= True

# 5.判断通讯录文件是否存在

addressbookFile= 'addressbook.data'

# 6.如果存在,将文件读取到personDictionary字典中

if os.path.exists(addressbookFile):

f= open(addressbookFile,'rb')

personDictionary= p.load(f)

# 7.如果不存在,提示并创建

else:

jCommand= input('未找到通讯录文件,是否创建?yes/no ')

if jCommand== 'yes':

f= open(addressbookFile,'wb')

p.dump(personDictionary,f)

f.close()

elif jCommand== 'no':

running= False

# 8.while循环等待读取指令

while running:

command= input('请输入指令:')

# 9.如果指令为addperson,添加通讯录人员

if command== 'addperson':

Operation.Addperson()

continue

# 10.如果指令为delperson,删除通讯录人员

elif command== 'delperson':

Operation.Delperson()

continue

# 11.如果指令为search,查找通讯录人员

elif command== 'search':

Operation.Search()

continue

# 12.如果指令为quit,不保存退出程序

elif command== 'quit':

Operation.Quit()

break

# 13.如果指令为sq,保存更改并退出程序

elif command== 'sq':

Operation.SaveQuit()

break

else:

print('未找到指令!')

continue

6、演示

Python3 addressbook.py

请输入指令:search

请输入要查找的联系人的姓名:zhangsan

联系人不存在。

请输入指令:addperson

请输入姓名:zhangsan

请选择分组(0:家人,1:朋友,2:同事):1

请输入电话:1234567

请输入指令:search

请输入要查找的联系人的姓名:zhangsan

姓名:zhangsan,关系:朋友,电话:1234567

请输入指令:sq

$ Python3 addressbook.py

请输入指令:search

请输入要查找的联系人的姓名:zhangsan

姓名:zhangsan,关系:朋友,电话:1234567

请输入指令:addperson

请输入姓名:lisi

请选择分组(0:家人,1:朋友,2:同事):1

请输入电话:1234567

请输入指令:q

未找到指令!

请输入指令:quit

$ Python3 addressbook.py

请输入指令:search

请输入要查找的联系人的姓名:lisi

联系人不存在。

请输入指令:search

请输入要查找的联系人的姓名:zhangsan

姓名:zhangsan,关系:朋友,电话:1234567

请输入指令:quit

总结

以上就是Python实现命令行通讯录实例教程的全部内容,如果有疑问可以留言讨论,希望本文的内容对大家学习使用python能有所帮助。

本文标题: Python实现命令行通讯录实例教程

本文地址: http://www.cppcns.com/jiaoben/python/160579.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值