使用字典实现一个Email地址管理程序,每个元素由用户名和对应的Email地址组成,如{‘zs’:’zs@163.com’,…}要求实现如下功能 (不考虑一个同户有多个Email地址)
1)所有数据保存在文本文件中,启动时读入已有信息
2)可将当前内存中的Email地址信息保存回文件
3)就够浏览当前所有的Emai1地址信息
- 输入用户名进行查询,输出对应的Email地址
5)修改某个用户名对应的Email地址
6)输入用户名,删除该用户及其对应的Email地址
- 增加新的用户名和对应的Email地址
8)当增加和修改条目时,判断Email地址是否合法
import re
# 读入已有信息(将已有信息转化成字典)
file = open('email.txt')
dict = { }
key = [ ]
for i in file.readlines():
value = i.split(':',1)
dict[value[0]] =value[1]
key.append(value[0])
print(dict)
file.close()
#判断用户名合法性
def rename(name):
if (dict.get(name) ==None):
name =input("请重新输入用户名:")
name =rename(name)
return name
#将字典转化为txt储存
def store():
file =open('email.txt','w+')
for i in dict.keys():
file.write(i+':'+dict[i])
file.close()
#判断邮箱合法性
def reemail(email):
if(re.match(r'^[\w]+[\w]\@[\w]+\.\w{3}$',email)) == None:
email =input("请输入新的Email地址:")
email =reemail(email)
return email
def choice(n):
#n = int(input("选择对Email地址文件进行的操作:\n1.查看当前所有信息\n2.查询Email信息\n3.修改Email地址\n4.删除用户对应的Email地址\n5.增加Email地址\n"))
if (n == 1):
for i in key:
print(i+':'+dict[i])
if (n == 2):
name =input("输入用户名:")
name =rename(name)
print(name,':',dict[name])
if (n == 3):
name =input("输入用户名:")
name =rename(name)
email =input("请输入新的Email地址:")
email =reemail(email)
dict[name] = email
print(name, ':',dict[name])
store()
if (n == 4):
name =input("输入用户名:")
name =rename(name)
del dict[name]
print("删除成功并保存")
print(dict)
store()
if (n == 5):
email =input("请输入新Email地址:")
email =reemail(email)
name =email.split('@')[0]
key.append(name)
dict[name] = email
'''file =open('email.txt', 'a+')
file.write(name+':'+email+'\n')
file.seek(0)
print(file.readlines())
file.close()'''
store()
print("添加成功并保存")
print(dict)
if (n > 5 or n <1):
print(dict)
n =int(input("选择对Email地址文件进行的操作:\n1.查看当前所有信息\n2.查询Email信息\n3.修改Email地址\n4.删除用户对应的Email地址\n5.增加Email地址\n"))
n = choice(n)
return n
n = int(input("选择对Email地址文件进行的操作:\n1.查看当前所有信息\n2.查询Email信息\n3.修改Email地址\n4.删除用户对应的Email地址\n5.增加Email地址\n"))
n = choice(n)