import sys
class TelephoneBook(object):
def __init__(self):
self.data=[]
with open("通讯录.txt", 'r', encoding='utf-8') as f:
for line in f.readlines():
line = line.strip('\n')
self.data.append(line)
def show_menu(self):
while True:
print("********************")
print("欢迎使用[通讯录] V1.0")
menu = {'1': '新建联系人',
'2': '查询联系人',
'0': '退出系统'}
for k, v in menu.items():
print(k + '. ' + v)
print("********************")
command = input('请选择操作功能:')
if command == '1':
self.add_info()
elif command == '2':
self.show_info()
elif command == '0':
print('退出...')
sys.exit()
def add_info(self):
new_contact = dict()
new_contact['姓名'] = str(input('请输入姓名:'))
new_contact['手机号'] = str(input('请输入电话:'))
new_contact['qq'] = str(input('请输入QQ号码:'))
new_contact['mail'] = str(input('请输入邮箱:'))
if new_contact['姓名']=='' or new_contact['手机号']=='':
print("姓名或电话不能为空,尝试重新输入吧!")
else:
self.data.append(new_contact)
if self.update_contact()==True:
print('成功添加'+new_contact['姓名']+'为联系人')
else:
print("添加失败")
def show_info(self):
contact_query = []
find_info = input('请输入要查询的姓名:')
if find_info == '':
print("请输入有效姓名")
self.show_info()
else:
find_info=str(find_info)
#flag=0
if len(self.data):
for item in self.data:
if item=='':
continue
else:
d = dict(eval(str(item)))
if d['姓名'] == find_info:
contact_query.append(d)
if len(contact_query)==0:
print("联系人不存在")
else:
for item in contact_query:
print("姓名:"+item.get('姓名'))
print("手机号:"+item.get('手机号'))
print("qq:"+item.get('qq'))
print("mail:"+item.get('mail'))
else:
print("通讯录还没有联系人!快去添加吧!")
def update_contact(self):
with open('通讯录.txt', 'w', encoding='utf-8') as f:
try:
for item in self.data:
f.write(str(item)+'\n')
return True
except Exception as e:
print('操作失败:%s' % e)
return False
def main(self):
self.show_menu()
if __name__ == '__main__':
a1 = TelephoneBook()
a1.main()
自己测试过挺多次的,没有什么大问题。一个很简单的通讯录实现,仅供参考。